1.select 只用到的列,尽量查询索引列 。
2.使用覆盖索引,减少回表的次数
3.索引是否失效,函数/表达式/like模糊查询等等
4.索引优化
explain计划
5.让选择性最强的索引列放在where前面
6.将一个大的连接查询分解成一个一个的单次查询
这样做的好处有:
- 让缓存更高效。对于连接查询,如果其中一个表发生变化,那么整个查询缓存就无法使用。而分解后的多个查询,即使其中一个表发生变化,对其它表的查询缓存依然可以使用。
- 分解成多个单表查询,这些单表查询的缓存结果更可能被其它查询使用到,从而减少冗余记录的查询。
- 减少锁竞争;