SQL优化思路

来源:互联网 发布:数控车床椭圆编程实例 编辑:程序博客网 时间:2024/05/21 16:58

SQL优化步骤

1.   使用pt-query-digest分析慢日志,拿到调用频率高并且执行时间长的语句。

2.   获取语句相关表的信息,以及explain等相关信息,一般收集如下信息

  • l  执行计划:explain query;
  • l  详细执行计划:explain extended query;show warnings;
  • l  相关表信息:show create table test1;
  • l  语句执行开销:show profile for query num;
  • l  数据量:select count(0) from table;
  • l  相关表的索引信息:show index for table;
  • l  my.cnf查询相关参数如各类buffer等

3.   进行初步分析,诊断SQL语句,查看在SQL层面能否带来提升,一般应对手段如下

  • l  条件上拉、下推
  • l  子查询合并、展开
  • l  添加索引、优化索引
  • l  distinct、group by、orderby尽量利用索引减少文件排序
  • l  子查询尽量转换为join,最好消除
  • l  尽量减少聚合函数,将复杂查询转换为多表链接
  • l  尽量优化等价谓词,尽可能利用索引
  • l  join的一些优化,连接消除、去除中间表等

4.   SQL无优化空间考虑从业务逻辑层面入手。常用手段如下

  • l  增加冗余字段
  • l  拆分表(水平/竖直)
  • l  使用分布式
  • l  将大事务拆分为多个小事务
  • l  精简数据库的设计,减少使用存储过程、触发器等

5.   对硬件进行优化,升级服务器硬件。

 

3、4步骤可与调整系统参数相结合,具体使用方法视具体业务而定。

 

 

优化投入收益如下

业务优化投入大,收益大

语句优化投入小,收益大

硬件优化投入大,收益小

 

优化优先级为语句优化>业务优化>硬件优化

 

 

0 0
原创粉丝点击