数据库
66-88
索引
介绍
结果
b+tree
hash
索引分类
索引语法
注:
- 创建索引中, UNIQUE参数表示创建唯一索引,字段中不能出现重复信息;FULLTEXT表示创建全文索引;不写表示创建常规索引
- 只写一个字段名为单列索引,多个字段名为联合索引
性能分析
-
查看执行频率
-
慢查询日志
-
show profile
-
explain
索引使用规则
- 最左前缀法则
最左前缀法则只要求从最左列开始的字段存在即可,是否按索引顺序无关。如:索引中有a,b,c字段,在查询时按b,c,a顺序查询也走索引。 - 范围查询
>,< 会使右侧索引失效,但 >=,<= 不会使右侧索引失效
索引失效
- 索引列上进行运算
- 字符串不加引号
- 模糊查询
- or连接的条件
age未创建索引
age创建索引后 - 数据分布影响
SQL提示
覆盖索引和回表查询
下一句多了一个name,extra列信息不一样
前缀索引
注:前缀索引的建立语法,与普通索引的建立语法区别在于字段中多了 (n) ,其中n为选取的前缀长度。对前缀长度进行选取,可根据 select count(distinct substring(字段名,1,n)) / count(*) from 表名 的大小,若n为10和n为5的大小相同,则选择5
单列索引和联合索引
注:第二条语句使用联合索引,不用回表查询,效率更高