查询优化

1:简述项目中优化SQL语句执行效率的方法,从哪些方面,sql语句性能如何分析

  • 分析查询速度慢的原因
  • 优化查询工程中的数据访问
  • 优化长难的查询语句
  • 优化特定类型查询语句

2:优化速度慢

  • 避免访问太多数据
  • 检查是否在检索大量的超过需要的数据
  • 确认MySQL服务器是否在分析大量不必要的数据行
  • 避免:

    查询不需要的数据,使用limit
    多表关联,指定字段
    避免select *
    重复的查相同的数据,可以缓存

  • explain进行分析,添加索引
  • 修改数据表的结构,修改数据表范式
  • 重写SQL语句

3:优化长难(mysql扫描的很快,只是响应数据就很慢了)

  • 切分查询

复杂查询可以在特殊的情况分解成多个简单查询

  • 分解关联查询

关联分解成多条SQL来执行
提高缓存
执行单个查询可以减少所得竞争

4:优化特定类型

  • count(*)会忽略所有的列,直接统计所有列数,因此不要使用count(列名)

    增加汇总表
    使用缓存

  • 关联查询

    给on或字句的列上加索引
    确保group by 和order by 中只有一个列这样mysql才有可能使用索引
    少使用子查询

  • 优化limit分页

    limit偏移量大的时候,查询效率较低
    可以记录上次查询的最大ID,下次查询时直接根据该ID来查询
    加个条件where id > 上次查询的最大ID

标签: mysql

添加新评论