在MySQL 5.7 COUNT()會選擇聚集索引,進行一次內(nèi)部handler函數(shù)調(diào)用,即可快速獲得該表總數(shù)
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了天柱免費建站歡迎大家使用!
執(zhí)行計劃顯示:Extra:Select tables optimized away
5.7以前的版本中,COUNT()請求通常是:掃描普通索引來獲得這個總數(shù)。
6.執(zhí)行計劃顯示: Extra:Using index
如果聚集索引較大(或者說表數(shù)據(jù)量較大),沒有完全加載到buffer pool中的話,MySQL 5.7的查詢方式有可能反而會更慢,還不如用原先的方式(MySQL 5.6)
解決辦法:強制走普通索引,不過還需要加上WHERE條件,否則還是不行
select count() from stock force index(idx_stock) where id >0;
extra:using where,using index