首頁技術(shù)文章正文

數(shù)據(jù)庫優(yōu)化以及sql語句優(yōu)化的30種方法

更新時(shí)間:2022-09-05 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  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ì)劃

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!