天天看點

怎麼做SQL調優?

1.選擇有效率的表連接配接順序

這個你要了解SQL語句執行的過程,就比如from:子句--執行順序為從後往前、從右到左,表名(最後面的那個表名為驅動表,執行順序為從後往前, 是以資料量較少的表盡量放後)。
           

2.避免使用*

SQL解析的時候,需要将 * 轉換為所有列名,這個工作需要依靠資料字典來完成。
           

3.用where子句替換having子句

where子句搜尋條件在進行分組操作之前應用;而having自己條件在進行分組操作之後應用。
	避免使用having子句,having子句隻會在檢索出所有紀錄之後才對結果集進行過濾,這個處理需要排序,總計等操作。
           

4.使用索引來避免排序操作

order by後面的字段上建有索引,将會大大提升效率!
           

5.不要在選擇性較低的字段建立索引(enum枚舉類型)

6.避免對列的操作

這點非常重要,不要在where條件中對字段進行數學表達式運算,任何對列的操作都可能導緻全表掃描。
           

7.盡量去掉"IN",“OR”

含有"IN"、"OR"的where子句常會使用工作表,使索引失效。
           

8.用exists、not exists和in、not in互相替代

IN适合于外表大而内表小的情況;exists适合于外表小而内表大的情況,自己了解下。