国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql如何避免全表掃描的方法

2020-01-19 00:22:40
字體:
來源:轉載
供稿:網友
在以下幾種條件下,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次的索引搜索。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛阳市| 海林市| 论坛| 五台县| 镇雄县| 连州市| 乐清市| 廉江市| 稻城县| 南木林县| 岑巩县| 霍州市| 化隆| 兴宁市| 五指山市| 成武县| 巴林左旗| 麻江县| 阜南县| 河间市| 西华县| 车致| 旌德县| 汨罗市| 白城市| 罗城| 朝阳市| 巫山县| 渭源县| 泾川县| 高尔夫| 祁阳县| 鹤壁市| 松原市| 迁西县| 调兵山市| 收藏| 临颍县| 茂名市| 侯马市| 墨竹工卡县|