1
我不太確定索引是如何工作的。MySQL索引解釋
以下是我的理解,請糾正我,如果我錯了或確認,如果我是正確的:
我有查詢:
SELECT * FROM people WHERE age < 40 AND country = 'United States'
我的指數是上country
場。
它首先搜索國家(因爲有索引),製作結果列表,然後搜索列表age < 40
。 我對不對?
我不太確定索引是如何工作的。MySQL索引解釋
以下是我的理解,請糾正我,如果我錯了或確認,如果我是正確的:
我有查詢:
SELECT * FROM people WHERE age < 40 AND country = 'United States'
我的指數是上country
場。
它首先搜索國家(因爲有索引),製作結果列表,然後搜索列表age < 40
。 我對不對?
可能是DBMS選擇做什麼。您的數據庫管理系統將查看SQL並生成一些可能的「執行計劃」,弄清楚它們是多麼「昂貴」,並選擇最好的一個。當然,您所描述的計劃是DMBS可能會考慮的計劃,但它不能100%保證選擇該計劃。
這取決於很多其他因素,包括數據的樣子。 DBMS將嘗試選擇儘可能早地過濾數據的計劃,以便使流經系統的數據最小化。如果DBMS可以看到只有極少數國家=「美國」,那麼它可能會首先選擇處理該部分查詢。這將使後續操作更便宜。
有關更多信息,請運行MYSQL EXPLAIN
(documentation)以準確查看DBMS選擇執行的操作。