成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

網(wǎng)友解答:

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

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

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

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

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

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

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

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

允許為Null的列,有風(fēng)險(xiǎn):比如 where name != 'Tom',如果name允許為Null,索引不儲(chǔ)存Null值,結(jié)果集不包含這些記錄;因?yàn)樗饕淮鎯?chǔ)Null值,所以is null也不會(huì)走索引;

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

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

標(biāo)簽: