1
如您所知,一個查詢僅使用一個每個表的索引。因此,有一些索引提示讓我們告訴查詢使用哪個索引。 Here是這方面的文檔。索引提示中USE和FORCE有什麼區別?
還有爲三個索引提示:
USE
IGNORE
FORCE
好吧,我不明白什麼是USE
和FORCE
之間的差異。他們看起來和我一樣。任何人都知道他們有什麼不同?
如您所知,一個查詢僅使用一個每個表的索引。因此,有一些索引提示讓我們告訴查詢使用哪個索引。 Here是這方面的文檔。索引提示中USE和FORCE有什麼區別?
還有爲三個索引提示:
USE
IGNORE
FORCE
好吧,我不明白什麼是USE
和FORCE
之間的差異。他們看起來和我一樣。任何人都知道他們有什麼不同?
USE INDEX(index_list)提示告訴MySQL只使用其中一個指定的索引來查找表中的行。
FORCE INDEX提示像USE INDEX(index_list)一樣行爲,另外假設表掃描非常昂貴。換句話說,只有在無法使用某個指定索引在表中查找行時才使用表掃描。
所以使用INDEX使得DB只用具體指標進行搜索,並在必要時表掃描*。
FORCE INDEX執行相同的操作,但只有在確實需要時才使用表掃描。
* A 表掃描正在讀表數據,而無需索引
好的,謝謝你..給予好評..只是「表掃描」是「指數」? – stack
A *表掃描*正在讀取沒有索引的表數據。 –
啊我明白了。你說的不同是這樣的:*「但確保只有在真正需要時才使用表掃描。」*。你也說'USE'索引相同:*「如果有必要,一個表掃描」*。那麼有什麼不同呢? – stack