加入收藏 | 设为首页 | 会员中心 | 我要投稿 衢州站长网 (https://www.0570zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

面试官出的MySQL索引问题,这篇文章全给你解决!

发布时间:2019-10-12 03:32:39 所属栏目:建站 来源:欧阳思海
导读:副标题#e# 0 前言 这篇文章不会讲解索引的基础知识,主要是关于MySQL数据库的B+树索引的相关原理,里面的一些知识都参考了MySQL技术内幕这本书,也算对于这些知识的总结。对于B树和B+树相关的知识,可以参考我的这篇博客:面试官问你B树和B+树,就把这篇文

所以,我们可以使用新的语法进行创建索引:

  1. ALTER TABLE table_name ADD [UNIQUE|FULLLTEXT] INDEX index_name (column(length))  
  2. [ALGORITHM = {DEFAULT|INPLACE|COPY}]  
  3. [LOCK = {DEFAULT|NONE|SHARED|EXLUSIVE}] 

ALGORITHM指定创建或者删除索引的算法

  •  COPY:创建临时表的方式
  •  INPLACE:不需要创建临时表
  •  DEFAULT:根据参数old_alter_table参数判断,如果是OFF,采用INPLACE的方式

LOCK表示对表添加锁的情况

  •  NONE:不加任何锁
  •  SHARE:加一个S锁,并发读可以进行,写操作需要等待
  •  EXCLUSIVE:加一个X锁,读写都不能并发进行
  •  DEFAULT:先判断是否可以使用NONE,如不能,判断是否可以使用SHARE,如不能,再判断是否可以使用EXCLUSIVE模式。

2 B+ 树索引的使用

2.1 联合索引

联合索引是指对表上的多个列进行索引,这一部分我们将通过几个例子来讲解联合索引的相关知识点。

首先,我们先创建一张表以及为这张表创建联合索引。

  1. create table t_index(  
  2. a char(2) not null default '',  
  3. b char(2) not null default '',  
  4. c char(2) not null default '',  
  5. d char(2) not null default ''  
  6. )engine myisam charset utf8; 

创建联合索引

  1. alter table t_index add index abcd(a,b,c,d); 

(编辑:衢州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读