MySQL索引总结
索引优点
提高数据检索效率
提高聚合函数效率
提高排序效率
使用覆盖索引可以避免回表
索引创建的三个经常
经常被查询的列(一般放在where的条件后面)
经常用于表连接的列
经常排序分组的列(order by或者group by后面的字段)
索引创建的四不要
选择性低的字段不需要创建索引(性别,状态)
很少查询的列不要创建索引(项目初期就要确定好)
大数据类型不要创建索引
列允许含有NULL值的不要创建索引(可以使用空字符串替代NULL)
使用不到索引的情况
通过索引扫描的行记录超过全表的30%,优化器就不会走索引,而变成全表扫描
联合索引中,第一个查询条件不是最左索引列
联合索引中,第一个索引列使用范围查询,只能使用到部分索引
模糊查询条件最左以通配符 % 开始
两个单列索引,一个用于检索,一个用于排序。这种情况下只能使用到一个索引。因为查询语句最多只能使用一个索引,考虑建立联合索引
查询字段上面有索引,但是使用了函数运算