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