无法命中索引的一些操作
查询条件中使用不等于操作符!=
非前缀使用like like '%gaga%'.
or操作符必须每个字段都建立索引
where语句中有数学运算或者函数....尽量的使用覆盖索引
在查询语句中,如果返回的字段较少,那么应该尽量的使需要的所有字段包含在索引中,这样可以使用覆盖索引来加快查询速度....确定是否真的需要数量
曾经见过一个count(*)的语句,但是对结果的使用仅仅是判断结果是否大于0,这时语句可以大大的减少扫面的数量来达到相同的作用:
select 1 from user where...使用近似值
当表中数据量非常大的时候,很多的count查询是不需要精确计数的,此时可以使用其他近似值,比如explain中的行数,比如information_schema.tables中的行数等....添加汇总表
如果需要经常的进行count,那么我们应该额外添加一张表或者一列来记录这个数值,而不是每次进行查询.
优化关联查询
确保on/where语句中的列上有索引.