-
①禁止使用 select *,需要什么字段查询什么字段。
-
②where 字段设置索引。
-
③group by、order by 字段设置索引。
-
④舍弃 offset,limit 分页,使用延迟关联来实现分页(数据量不大时可不用)。
-
⑤写分页时当 count 为 0 时,直接返回避免执行分页语句。
-
⑥利用覆盖索引进行查询避免回表。
-
⑦建立复合索引时区分度最高的放在最左侧。
-
⑧统计数据行数只用 count(*),别整的花里胡哨的。
-
⑨关于 in 和 exist,如果查询的俩个表大小一致则性能差别可忽略,如果子查询表大用 exist,否则使用 in。
-
⑩查询一行数据时加上 limit 1。
-
⑪选择合理的数据类型,在满足条件下数据类型越小越好。
-
⑫联合查询 join 最多三个表,并且需要 join 的字段数据类型保持一致。
-
⑬in 操作能避免尽量避免,无法避免的情况下 in 元素控制在 1000 以内。
-
⑭数据更新频繁,区分度不高的列不适合建立索引。
-
⑮explain 中的 type 至少要达到 range,要求为 ref。
-
⑯联合索引满足最左侧原则。