q:使用了索引就会有优化
a:然而并不是这样,一下情况都是没有作用的。
1、索引字段并没有在查询条件中使用。
2、条件查询的过滤结果占比过多,既索引字段为可重复的字段,常固发生此情况。
3、对小表查询 (此处指索引建立在小表上),联查到数据多的表的时候,也会有影响。
4、对索引字段进行函数运算也会使其失效。
5、模糊查询左联模糊查询也不会走索引,如 like concat('%',column1)。
6、索引字段大批量为null 也会使其不走索引。
q:怎么分析一个语句慢,怎么优化
a:1、mysql 运行 show full processlist 可以查看运行占用大,慢的sql(一般一个功能模块的sql慢的问题都可以这样去查找)。
2、使用explain 【你的sql】,可以查看sql的运行是否走索引,可能走的所以等等。