1.mysql的索引分为单列索引(主键索引-不允许空值,唯一索引-允许空值,普通索引)和组合索引.
单列索引:一个索引只包含一个列,一个表可以有多个单列索引.
组合索引:一个组合索引包含两个或两个以上的列
2.使用:经常需要查询的列
在经常需要排序(order by),分组(group by)和的distinct 列上加索引 可以加快排序查询 的时间, (单独order by 用不了索引,索引考虑加where 或加limit)
3.联合索引:离散度(判断:select count(distinct id),count(distinct name) from tablename 查询结果越高就放在联合索引前面,即是离散度越高)-index(id,name),id离散度高
4.加索引,增加查询效率,同时也会降低写入效率(也可能影响查询)
减去重复的索引(主键本来就是索引),联合主键不要加主键列,
删除不必要的索引:使用工具:pt-duplicate-key-checker \
-uroot \
-p ' 123456' \
-h 127.0.0.1