MySQL 性能优化措施
当多表关联查询速度过慢时,如何加快查询速度?
场景一
在界面上显示数据列表,通常一次查询需要执行两条查询语句:
- 第一条:使用count关键字查询复合查询条件的总记录数
- 第二条:查询一页记录数据
通常情况下,查询总记录数的语句耗时较长。
MySQL的count关键字在innoDB存储引擎中时如何实现的?
- count(*)是如何工作的?
- count(columnX)是如何工作的?
- count与where的关系?
分析过程
-
- 首先使用的工具
explain
对查询语句进行分析,查看每一步的查询类型;
- 首先使用的工具
-
- 当发现查询类型有
ALL
时,即全表扫描,如果该表数据量较大时,此处需要着重分析处理。查询where查询条件是否有对字段进行计算的操作或者是模糊查询等情况,如果不存在,则,需要使之查询使用上索引。
- 当发现查询类型有
创建索引
- 索引类型
Btree+数据结构,层级固定,查询效率有保障。 - 字段组合
根据查询条件,选择字段。