SQL优化

一 概述

对于一些大型应用而言,SQL优化一直是重中之重。我们必须想方设法提高SQL执行的性能,否则由于庞大的数据量,它将成为整个系统性能的瓶颈。

二 SQL优化的一般步骤

当面对一个有SQL性能问题的数据库时,我们应该明白如何对它进行系统的分析。

  • 通过show status命令了解各种SQL语句的执行频率
  • 定位执行效率较低的SQL语句(通过慢查询日志或show processlist)
  • 通过explain分析低效SQL的执行计划
  • 确定问题并采取相应的优化措施

三 数据库优化

数据库的优化
  • 建立索引(B树和hash)
  • 定期分析表和检查表
  • 定期优化表
SQl语句的优化
  • 使用load大批量插入数据
  • 优化insert语句。
  • 优化group by语句
  • 优化order by语句
  • 优化嵌套查询
  • 优化or条件
  • 使用SQL提示
优化数据库对象
  • 优化表的数据类型
  • 通过拆分提高表的访问效率(分库分表)
  • 逆规范化
  • 使用中间表提高统计查询速度
应用优化
  • 使用连接池
  • 减少对数据库的访问(避免重复检索,做缓存等)
  • 负载均衡(分库分表,查询分流)