典型错误纠错

慢查询优化

  • 是否检索大量超过需要的数据。访问太多的行和列
  • mysql服务器层是否分析大量超过需要的数据

典型错误(超过实际需要的数据,请求了不需要的数据)

  • 查询不需要的记录(使用limit,舍弃大部分数据)
  • 多表关联返回所有列(获取所需要的列)
  • 总是使用select*(提高代码复用性,使用缓存机制)
  • 多次查询相同的数据(缓存解决)

扫描额外的记录

查询开销指标 在慢日志记录

  • 响应时间:服务时间+排队时间(等待资源时间)
  • 扫描行数:重要指标 可能扫描多行生产结果集的一行
  • 返回行数

访问类型 explain语句type列说明访问类型,最好使用索引(ref)

重构select方式

  • 一个复杂查询还是多个查询(主要是Mysql响应较慢)
  • 切分查询(删除语句可能锁住数据,占用资源等,可用delete limit 返回删除结果)
  • 分解关联查询