SQL优化那些事
说到sql优化,网上也充斥着各种优化方案。这里总结一下:
一、创建索引
创建索引是最快速,也是最有效的优化方式。你肯定也听说过,索引并不是越多越好。具体什么时候需要创建索引,什么时候不能创建索引。具体都有什么样的规则:
首先索引并不是越多越好,要做到宁缺毋滥。一张表中索引数量建议不超过4个
1》以下情况不考虑创建索引:
1.更新频繁的表字段,不创建索引
2.表记录内容较少时,不创建索引
3.唯一性太差的字段不创建索引
2》创建索引
1.经常查询的字段添加索引
2.表连接的关联字段添加索引
二、下面说一些语句书写方面的一些优化方式
经常用到的一些优化方式这里我就不赘述了,下面我着重说一些不太常见的一些优化方式,也是我们经常关注的问题:
1.先筛选数据后表连接?还是先表连接后筛选数据?
如果关联条件是主键或是索引字段时,先表连接后删选数据,否则先筛选数据后表连接
2.表连接大表在前还是小表在前?
原则:小表驱动大表
3.先分组还是先表连接?
问题同1,当有索引的时候先表连接,否则先分组
4.sql执行顺序问题
oracle的where语句是从右向左执行的,mysql的where语句是从左向右执行的,建议筛选数据量大的条件放前面执行。
三、优化准则
我们在做sql优化的时候是以什么样的准则来进行优化呢?
sql执行计划是我们进行sql优化的标准,下面这篇是一个sql执行计划的优化标准。