文章詳情頁
mysql優化 - 關于mysql查詢時索引失效及掃描行數大于數據總行數的疑問。
瀏覽:81日期:2022-06-10 17:35:38
問題描述
對比前兩條語句,第二條沒有使用索引,我記得是掃描行數達到一定行數時會放棄使用索引,這個臨界值是多少呢?
全表掃描是顯示掃描行數是 70341 行,而數據總行數卻只有 57087 行?
select count(*) 使用了索引,但是也掃描了 70341 行,這個語句會產生性能問題嗎?
問題解答
回答1:CBO優化機制的數據庫中,沒有明確的使用或不適用索引的臨界值,以執行計劃中的COST最小為標準,經驗值是取表總行數小于5%的時候用索引比較合適。
我理解第二個語句使用的是表的統計數據,如果表最近發生過比較大的變更,統計數據有沒有及時更新,會出現兩者偏差較大的情況。
count(*)使用了索引,說明update_at字段有NOT NULL的定義,相比較全表掃描,掃描索引的成本會更低一些。
相關文章:
1. javascript - js 有什么優雅的辦法實現在同時打開的兩個標簽頁間相互通信?2. html5和Flash對抗是什么情況?3. javascript - 怎樣限制同一個瀏覽器不能登錄兩個賬號4. java - 新手做一個安卓視頻播放器,想實現一個進度條,按鈕那種在視頻下方懸浮的功能,不知道思路!5. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決6. javascript - angular和jquery都用到了$符號,一起用會不會沖突?7. java - android代碼重構:如何把app設置里的頭像UI做成通用的?8. 想找個php大神仿個網站。9. javascript - 一個抽獎的效果(如圖)?10. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?
排行榜
