MySQL 查询优化简介

本贴最后更新于 790 天前,其中的信息可能已经事过景迁

概述

为什么查询会慢?

开启MySQL慢查询

如何优化慢查询?

慢查询优化实践

  1. 合理添加索引,如果针对某些列经常做搜索、关联、条件比较,就创建为索引列;但创建了索引列,查询时并不一定会命中,要通过EXPLAIN查看并调整语句
  2. 优化数据结构,将字段分解到多个表、对一些经常要呈现的外部关联数据,如果变化不大或符合业务,冗余进来提高查询效率;比如关联姓名、复杂层级数据关联所有的id
  3. 子查询优化,比如,where条件中的in效率要比exists差
  4. 关联查询优化,比如,给join中on关联的列添加索引;让group by或order by表达式中的列只涉及到一个表中的列,能有效使用索引;多个表关联查询时,索引使用会受限,如果其中有个大数据量的表,尽量要利用此表索引(比如此表单独改子查询先过滤数据)

注意,还有很多,如果where多个条件顺序不同,效率都不同,在实际的工作中,当单表数据达到一定数量,再去处理,或和DBA协同处理即可

附件.zip

回帖
请输入回帖内容 ...