关于mysql索引的一些总结
转自深入浅出mysql
1.定位效率较低的sql语句
(1)通过慢查询定位执行效率较低的sql语句
(2)使用show processlist命令查看当前mysql在进行的线程,包括线程的状态,是否锁表等
2.通过explain分析低效的sql执行计划
3.索引使用
(1)索引的前缀特性
如果索引是一个组合索引如(status,time),那么当使用status做为查询条件时,索引仍然有效;如果查询条件是time,那么索引就无效
(2)对于使用like的查询,后面如果是常量并且只有%号不在第一个字符,索引才可能会被使用,如%xxx就不能用到索引,xxx%才能用到索引
(3)如果列名是索引,使用column_name is null将使用索引
(4)如果使用or分割条件,那么 只有or前后的列都用到索引,这条语句才会用到索引
(5)如果列类型是字符串,那么一定在where条件中把字符常量值用引号引起来,否则即便这个列上有索引,mysql也不会用到