索引丢失情况
程序员文章站
2022-04-18 11:47:32
...
1,在sql中如果在左边执行函数则索引丢失
例如:
select * from t where c-1 = 1000; //不适用索引
select * from t where c = 1000 + 1; //使用索引
2,如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)
3,like查询是以%开头
4,如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
explain 后边加sql标识查询索引使用情况
详情看:mysql explain执行计划详解
也可以通过
show index from 表名;
来查询索引的基数和实际是否符合,如果和实际很不符合的话,重新来统计索引的基数,用这条命令
analyze table 表名;