色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql列表查詢的軟件,如何通過優(yōu)化sql語句提高數(shù)據(jù)庫查詢效率

mysql列表查詢的軟件,如何通過優(yōu)化sql語句提高數(shù)據(jù)庫查詢效率?

通過優(yōu)化SQL語句,提高數(shù)據(jù)庫查詢效率,我總結(jié)了有這么幾個(gè)方面:

減少數(shù)據(jù)訪問

看起來像一句廢話,少訪問數(shù)據(jù)當(dāng)然可以提高速度了,減少數(shù)據(jù)訪問有這么幾個(gè)方法:

創(chuàng)建并正確使用索引

我們經(jīng)常用到的就是B-TREE索引,我們經(jīng)常說到的【索引】也指的是【B-TREE索引】。

正確使用索引可以讓查詢效率翻倍,但是如果使用不正確,也會(huì)對效率降低很多,比如這幾種情況就會(huì)造成索引失效:

不等于操作:<>? 、not in('')

進(jìn)行了運(yùn)算后的字段:column+1(簡單的運(yùn)算),function(column)(函數(shù))

含前導(dǎo)模糊查詢:like '%xxx'

IS NULL

隱式類型轉(zhuǎn)換:column是char類型,但是寫成column = 123(右邊是另外一種類型)

只通過索引訪問數(shù)據(jù)

有些時(shí)候,我們只需要訪問表中的某幾個(gè)列的數(shù)據(jù),我們可以為這幾個(gè)字段建立一個(gè)組合索引,這樣的話只通過索引就可以得到數(shù)據(jù),可以較小IO的開銷。比如:

select name,gender from users where age='25';

如果這個(gè)SQL用的頻率很高,那么我們可以建立一個(gè)組合索引:

create index index_xxx on users(name,gender,age);

在執(zhí)行這個(gè)sql的時(shí)候,數(shù)據(jù)全部都是通過索引找到的,都不需要訪問users表。

優(yōu)化SQL執(zhí)行計(jì)劃

執(zhí)行計(jì)劃表示SQL在執(zhí)行時(shí)候的算法,有的時(shí)候SQL語句很復(fù)雜,就需要優(yōu)化SQL的執(zhí)行計(jì)劃去提高SQL的執(zhí)行效率。

其他

可能不和SQL有直接的關(guān)系,但確實(shí)效率提升很明顯,比如:

數(shù)據(jù)分頁處理只返回需要的字段減少交互次數(shù)(batch DML)使用綁定變量(可以減少數(shù)據(jù)庫服務(wù)器CPU運(yùn)算)

但是要注意,對SQL不要過度優(yōu)化,滿足需求即可。

希望我的回答能夠幫助到你!