SQL优化
一、插入优化
多条插入语句,影响执行效率
优化方案
1、批量插入:
在一条insert语句中多条数据,但是如果数据量过大,也不能完全使用一条语句语句,建议数据量为一次性插入1000条以下的数据
如果数据量多大,可以使用拆分为多条insert语句
为避免MySQL事务影响,当数据量过大时,可以采用手动提交事务
2、主键顺序插入:
因为如果主键的顺序插入高于乱序插入(一般情况下都是顺序)
二、排序优化
避免使用文件排序(Using filesort),效率低
文件排序:
将所有数据列为一个文件,查询文件中的所有数据,在进行排序
尽量使用索引(索引相当于目录)
多字段排序:
多字段排序要尽量遵循最左前缀原则,不要对一个字段升序对另一个字段降序,否则也会使用到文件排序
最左前缀原则:
只有从左到右的索引在使用时可以被查询到
MySQL最左前端是指在使用索引时,只有从从左到右的索引列才能被用到,也就是如果索引是(a,b,c),那么查询条件是a、ab、abc才能使用这个索引
在查询语句前加入explain
explain select 字段列表 from 表名 where 条件 order by 字段名;
优化方案
创建索引
文件排序
使用索引进行排序,不使用文件排序
如果违反最左前缀原则,还是会使用文件排序,不会使用索引进行排序