MySQL 中如何进行 SQL 调优?

March 14, 2025 / 老大 / 0阅读 / 0评论/ 分类: 数据库

回答重点

主要是结合explain,分析SQL查询的执行计划,找到性能瓶颈,进行优化。

根据慢sql日志,找出需要优化的一些sql语句。

常见优化方向:

  1. 合理建立索引,利用联合索引进行覆盖索引的优化,避免回表,以减少一次查询或随机I/O;

  2. 避免select *,只查询必要的字段;

  3. 避免在sql中进行函数计算等操作,使得无法命中索引;

  4. 避免使用%LIKE,导致全表扫描;

  5. 注意联合索引需满足最左匹配原则;

  6. 非必要不对无索引字段进行排序操作;

  7. 联表查询需要注意不同字段的字符集是否一致,否则也会导致全表扫描;

  8. 用union all代替union,union去重,排重过程更耗时、耗CPU资源,除特殊场景(如不允许重复)外尽量用union all;

  9. 灵活使用limit,如果需求是是否存在符合条件的数据时,可以在sql后追加

慢SQL

通过set global slow_query_log = 'ON'开启MySQL自带的日志记录,默认为关闭状态。

开启日志,方便后续分析优化。

  • show variables like '%slow_query_log%':查询当前慢日志是否开启,以及存储路径;

  • set global long_query_time = 3:设置慢SQL的阈值,当一个SQL执行的时间达到3秒,就会被记录到慢日志中。

#MySQL(21)

评论