MySQL优化查询

举报
yd_277754045 发表于 2026/09/23 15:41:39 2026/09/23
【摘要】 MySQL 查询优化可以按这个顺序:先看执行计划EXPLAIN SELECT ...重点关注 type、key、rows、Extra。给 WHERE / JOIN / ORDER BY 常用字段建索引CREATE INDEX idx_user_name ON user(name);建立合适的联合索引INDEX(a, b, c)遵循最左匹配原则。避免索引失效不要对索引列使用函数:WHERE Y...

MySQL 查询优化可以按这个顺序:

  1. 先看执行计划

    EXPLAIN SELECT ...

    重点关注 type、key、rows、Extra。

  2. 给 WHERE / JOIN / ORDER BY 常用字段建索引

    CREATE INDEX idx_user_name ON user(name);
  3. 建立合适的联合索引

    INDEX(a, b, c)

    遵循最左匹配原则。

  4. 避免索引失效

    • 不要对索引列使用函数:WHERE YEAR(date)=2026

    • 避免隐式类型转换

    • 避免 LIKE '%xxx'

    • 尽量不要 OR 大量连接不同字段

  5. 减少查询数据量

    • 不要 SELECT *

    • 合理使用 LIMIT

    • 分页尽量避免超大 OFFSET

  6. 优化 JOIN

    • JOIN 字段建立索引

    • 尽量先过滤数据,再 JOIN

    • 注意字段类型必须一致

  7. 大表考虑

    • 分区

    • 分库分表

    • 归档历史数据

    • 缓存热点数据

  8. 慢查询开启 Slow Query Log
    找出真正耗时的 SQL,而不是凭感觉优化。

核心原则:先 EXPLAIN → 找全表扫描/大量 rows → 调整索引和 SQL → 再测试。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。