更新時間:2022-09-05 來源:黑馬程序員 瀏覽量:
1、查詢 SQL 盡量不要使用 select *,而是 select 具體字段
2、如果知道查詢結果只有一條或者只要最大/最小一條記錄,建議用 limit 1
3、應盡量避免在 where 子句中使用 or 來連接條件
4、優(yōu)化 limit 分頁
5、優(yōu)化你的 like 語句
6、使用 where 條件限定要查詢的數(shù)據,避免返回多余的行
7、盡量避免在索引列上使用 MySQL 的內置函數(shù)
8、應盡量避免在 where 子句中對字段進行表達式操作,這將導致系統(tǒng)放棄使用索引而進行全表掃
9、Inner join 、left join、right join,優(yōu)先使用 Inner join,如果是 left join,左邊表結果盡量小
10、應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描
11、使用聯(lián)合索引時,注意索引列的順序,一般遵循最左匹配原則
12、對查詢進行優(yōu)化,應考慮在 where 及 order by 涉及的列上建立索引,盡量避免全表掃描
13、如果插入數(shù)據過多,考慮批量插入
14、在適當?shù)臅r候,使用覆蓋索引
15、慎用 distinct 關鍵字
16、刪除冗余和重復索引
17、如果數(shù)據量較大,優(yōu)化你的修改/刪除語句
18、where 子句中考慮使用默認值代替 null
19、不要有超過 5 個以上的表連接
20、exist&in 的合理利用
21、盡量用 union all 替換 union
22、索引不宜太多,一般 5 個以內
23、盡量使用數(shù)字型字段,若只含數(shù)值信息的字段盡量不要設計為字符型
24、索引不適合建在有大量重復數(shù)據的字段上,如性別這類型數(shù)據庫字段
25、盡量避免向客戶端返回過多數(shù)據量
26、當在 SQL 語句中連接多個表時,請使用表的別名,并把別名前綴于每一列上,這樣語義更加清晰
27、盡可能使用 varchar/nvarchar 代替 char/nchar
28、為了提高 group by 語句的效率,可以在執(zhí)行到該語句前,把不需要的記錄過濾掉
29、如果字段類型是字符串,where 時一定用引號括起來,否則索引失效
30、使用 explain 分析你 SQL 的計劃