SQL優化
一、插入優化
多條插入語句,影響執行效率
優化方案
1、批量插入:
在一條insert語句中多條數據,但是如果數據量過大,也不能完全使用一條語句語句,建議數據量為一次性插入1000條以下的數據
如果數據量多大,可以使用拆分為多條insert語句
為避免MySQL事務影響,當數據量過大時,可以采用手動提交事務
2、主鍵順序插入:
因為如果主鍵的順序插入高于亂序插入(一般情況下都是順序)
二、排序優化
避免使用文件排序(Using filesort),效率低
文件排序:
將所有數據列為一個文件,查詢文件中的所有數據,在進行排序
盡量使用索引(索引相當于目錄)
多字段排序:
多字段排序要盡量遵循最左前綴原則,不要對一個字段升序對另一個字段降序,否則也會使用到文件排序
最左前綴原則:
只有從左到右的索引在使用時可以被查詢到
MySQL最左前端是指在使用索引時,只有從從左到右的索引列才能被用到,也就是如果索引是(a,b,c),那么查詢條件是a、ab、abc才能使用這個索引
在查詢語句前加入explain
explain select 字段列表 from 表名 where 條件 order by 字段名;
優化方案
創建索引
文件排序
使用索引進行排序,不使用文件排序
如果違反最左前綴原則,還是會使用文件排序,不會使用索引進行排序