sql语句优化5种方式

1、建立物化视图或尽可能减少多表查询;

2、以不相干子查询替代相干子查询;

3、只检索需要的列;

4、用带in的条件子句等价替换or子句;

5、经常提交commit,以尽早释放锁;

sql优化常用的方法

1、explain 输出执行计划:好的SQL语句至少要达到range级别,在结果type列显示从最好到最差的连接类型为const、eq_reg、- ref、range、index和ALL。

2、in 和 not in 要慎用:对于连续的数值,能用 between 就不要用 in 了。

3、少用select *:SELECT语句务必指明字段名称,减少不必要的消耗。

4、善用limit 1:如果加上limit1.查找到就不用继续往后找了。

5、order by字段建索引。

6、count(*)推荐使用。

7、where 子句中避免is null /is not null:容易导致引擎放弃使用索引而进行全表扫描。

8、应尽量避免在 where!=或<>:子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

9、应尽量避免在 where 子句中使用 or: 例如 select id from t where num=10 or num=20 可以改为 select id from t where num=10 union all select id from t where num=20

10、尽量用union all代替union

11、应尽量避免在where子句中对字段进行函数操作

12、可以选择 exists 代替 in

13、避免%xxx式查询

14、选择重复值较低的字段建索引

15、高效的分页:select id,name,age from user id>10000 limit 20;

16、join使用问题:用连接查询代替子查询、join表不易超过3个、小表驱动大表、链接字段建索引。

17、关于索引本身:使用多列索引时主意顺序和查询条件保持一致,同时删除不必要的单列索引。