Mysql如何避免全表掃描的方法
1>數(shù)據(jù)表是在太小了,做一次全表掃描比做索引鍵的查找來(lái)得快多了。當(dāng)表的記錄總數(shù)小于10且記錄長(zhǎng)度比較短時(shí)通常這么做。
2>沒(méi)有合適用于 ON 或 WHERE 分句的索引字段。
3>讓索引字段和常量值比較,MySQL已經(jīng)計(jì)算(基于索引樹)到常量覆蓋了數(shù)據(jù)表的很大部分,因此做全表掃描應(yīng)該會(huì)來(lái)得更快。
4>通過(guò)其他字段使用了一個(gè)基數(shù)很?。ê芏嘤涗浧ヅ渌饕I值)的索引鍵。這種情況下,MySQL認(rèn)為使用索引鍵需要大量查找,還不如全表掃描來(lái)得更快。
對(duì)于小表來(lái)說(shuō),全表掃描通常更合適。但是對(duì)大表來(lái)說(shuō),嘗試使用以下技術(shù)來(lái)避免讓優(yōu)化程序錯(cuò)誤地選擇全表掃描:
1>執(zhí)行 ANALYZE TABLE tbl_name 更新要掃描的表的索引鍵分布。
2> 使用 FORCE INDEX 告訴MySQL,做全表掃描的話會(huì)比利用給定的索引更浪費(fèi)資源。
SELECT * FROM t1, t2 FORCE INDEX (index_for_column)
WHERE t1.col_name=t2.col_name;
3>啟動(dòng) mysqld 時(shí)使用參數(shù) --max-seeks-for-key=1000 或者執(zhí)行 SET max_seeks_for_key=1000 來(lái)告訴優(yōu)化程序,所有的索引都不會(huì)導(dǎo)致超過(guò)1000次的索引搜索。
相關(guān)文章
mysql數(shù)據(jù)庫(kù)亂碼之保存越南文亂碼解決方法
做一個(gè)包含越南文的網(wǎng)站,用戶說(shuō)在保存包含越南文的文章時(shí),MSYQL亂碼了,看下面的解決方法2013-12-12
MySQL系列關(guān)于NUll值的經(jīng)驗(yàn)總結(jié)分析教程
這篇文章主要為大家介紹了MySQL系列關(guān)于NUll值的一些經(jīng)驗(yàn)總結(jié)分析,關(guān)于null值的影響作用以及為什么會(huì)出現(xiàn)null值的原因等等問(wèn)題的解析2021-10-10
Linux下MySQL安裝配置 MySQL配置參數(shù)詳解
Linux下MySQL安裝配置 MySQL配置參數(shù)詳解,在linux下配置mysql的朋友可以參考下。2011-07-07
MySQL?8.0.29?安裝配置方法圖文教程(windows?zip版)
這篇文章主要為大家詳細(xì)介紹了windows?zip版MySQL?8.0.29?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
mysql動(dòng)態(tài)游標(biāo)學(xué)習(xí)(mysql存儲(chǔ)過(guò)程游標(biāo))
mysql動(dòng)態(tài)游標(biāo)示例,通過(guò)準(zhǔn)備語(yǔ)句、視圖和靜態(tài)游標(biāo)實(shí)現(xiàn),大家參考使用吧2013-12-12
MySQL查詢倒數(shù)第二條記錄實(shí)現(xiàn)方法
這篇文章主要介紹了MySQL查詢倒數(shù)第二條記錄實(shí)現(xiàn)方法,本文直接給出代碼實(shí)例,重要部分已經(jīng)加紅提示,需要的朋友可以參考下2015-05-05
linux配置mysql數(shù)據(jù)庫(kù)遠(yuǎn)程連接失敗的解決方法
這篇文章主要為大家詳細(xì)介紹了linux配置mysql數(shù)據(jù)庫(kù)遠(yuǎn)程連接失敗的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
MySQL中的用戶創(chuàng)建與權(quán)限管理
這篇文章主要介紹了MySQL中的用戶創(chuàng)建與權(quán)限管理,文章通過(guò)圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
mysql 開發(fā)技巧之JOIN 更新和數(shù)據(jù)查重/去重
這篇文章主要介紹了mysql 開發(fā)技巧之JOIN 更新和數(shù)據(jù)查重/去重的相關(guān)資料,需要的朋友可以參考下2016-09-09

