索引

B+ Tree原理

数据结构

 

与红黑树比较

 

索引的定义

索引(Index)是帮助MySQL高效获取数据的数据结构 ===> 排好序的快速查找数据结构

基本语法

创建====>CREATE [UNIQUE] INDEX indexName ON mytable(columnname(length));(如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定length)

删除====>DROP INDEX [indexName] ON mytable;

查看====>SHOW INDEX FROM table_name;

索引的优点

大大减少了服务器需要扫描的数据行数
帮助服务器避免进行排序和分组,以及避免创建临时表(B+Tree 索引是有序的,可以用于 ORDER BY 和GROUP BY操作。临时表主要是在排序和分组过程中创建,因为不需要排序和分组,也就不需要创建临时表)
将随机 I/O 变为顺序 I/OB+Tree 索引是有序的,会将相邻的数据都存储在一起)

索引优化分析

Explain

Explain+SQL语句

 select_type

 

 

索引失效

查询优化分析

永远小表驱动大表

order by关键字优化

group by关键字优化

MySQL锁机制