溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL 5.7下InnoDB對(duì)COUNT(*)的優(yōu)化

發(fā)布時(shí)間:2020-07-03 18:10:11 來源:網(wǎng)絡(luò) 閱讀:2648 作者:會(huì)說話的魚 欄目:MySQL數(shù)據(jù)庫

MySQL 5.7 COUNT()會(huì)選擇聚集索引,進(jìn)行一次內(nèi)部handler函數(shù)調(diào)用,即可快速獲得該表總數(shù)

執(zhí)行計(jì)劃顯示:Extra:Select tables optimized away

5.7以前的版本中,COUNT()請(qǐng)求通常是:掃描普通索引來獲得這個(gè)總數(shù)。
6.執(zhí)行計(jì)劃顯示: Extra:Using index

如果聚集索引較大(或者說表數(shù)據(jù)量較大),沒有完全加載到buffer pool中的話,MySQL 5.7的查詢方式有可能反而會(huì)更慢,還不如用原先的方式(MySQL 5.6)
解決辦法:強(qiáng)制走普通索引,不過還需要加上WHERE條件,否則還是不行
select count() from stock force index(idx_stock) where id >0;
extra:using where,using index

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI