国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

SQL數(shù)據(jù)庫如何優(yōu)化?

網(wǎng)友解答: 面試的時候經(jīng)常會文檔一些SQL方面的問題,比較常見的面試題例如“什么時候回造成索引失效?”,又或者“你經(jīng)常做的SQL優(yōu)化的工作有哪些?”下面,我就介紹幾個有關(guān)SQL優(yōu)化的知識

網(wǎng)友解答:

面試的時候經(jīng)常會文檔一些SQL方面的問題,比較常見的面試題例如“什么時候回造成索引失效?”,又或者“你經(jīng)常做的SQL優(yōu)化的工作有哪些?”

下面,我就介紹幾個有關(guān)SQL優(yōu)化的知識點。

負(fù)向條件查詢不能使用索引:包括!=、not in、not exists都盡量不要使用;

%在前面的模糊查詢:where name like '%xxx';

等號左邊有函數(shù):where upper(str) = '...',就算str字段有索引,這個寫法也不會走索引;

數(shù)據(jù)區(qū)分度不大的字段,不要建索引:例如性別男、女、為止,這種就不適合建立索引;

隱式轉(zhuǎn)換:where tel = 13800000000,如果tel字段是varchar類型,這個寫法不會報錯,但是會索引失效;

只返回需要的數(shù)據(jù):select name,gender from users 優(yōu)于 select * from users;

允許為Null的列,有風(fēng)險:比如 where name != 'Tom',如果name允許為Null,索引不儲存Null值,結(jié)果集不包含這些記錄;因為索引不存儲Null值,所以is null也不會走索引;

如果業(yè)務(wù)大部分是單條記錄查詢,那么Hash索引效率更高

復(fù)合索引最左前綴:(name,gender)復(fù)合索引,where name=xx and gender =x 可以命中,where name=xx可以命中,where gender =x不能命中。

標(biāo)簽: