程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql若何防止全表掃描的辦法

Mysql若何防止全表掃描的辦法

編輯:MySQL綜合教程

Mysql若何防止全表掃描的辦法。本站提示廣大學習愛好者:(Mysql若何防止全表掃描的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql若何防止全表掃描的辦法正文


在以下幾種前提下,MySQL就會做全表掃描:
1>數據表是在太小了,做一次全表掃描比做索引鍵的查找來得快多了。當表的記載總數小於10且記載長度比擬短時平日這麼做。
2>沒有適合用於 ON 或 WHERE 分句的索引字段。
3>讓索引字段和常量值比擬,MySQL曾經盤算(基於索引樹)到常量籠罩了數據表的很年夜部門,是以做全表掃描應當會來得更快。
4>經由過程其他字段應用了一個基數很小(許多記載婚配索引鍵值)的索引鍵。這類情形下,MySQL以為應用索引鍵須要年夜量查找,還不如全表掃描來得更快。
關於小表來講,全表掃描平日更適合。然則對年夜表來講,測驗考試應用以下技巧來防止讓優化法式毛病地選擇全表掃描:
1>履行 ANALYZE TABLE tbl_name 更新要掃描的表的索引鍵散布。
2> 應用 FORCE INDEX 告知MySQL,做全表掃描的話會比應用給定的索引更糟蹋資本。
SELECT * FROM t1, t2 FORCE INDEX (index_for_column)
WHERE t1.col_name=t2.col_name;
3>啟動 mysqld 時應用參數 --max-seeks-for-key=1000 或許履行 SET max_seeks_for_key=1000 來告知優化法式,一切的索引都不會招致跨越1000次的索引搜刮。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved