sql优化

  • ①禁止使用 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。

  • ⑯联合索引满足最左侧原则。

原文地址:https://www.cnblogs.com/yyldh/p/14481154.html