2012-07-02 88 views
1

我不太確定索引是如何工作的。MySQL索引解釋

以下是我的理解,請糾正我,如果我錯了或確認,如果我是正確的:
我有查詢:

SELECT * FROM people WHERE age < 40 AND country = 'United States' 

我的指數是上country場。
它首先搜索國家(因爲有索引),製作結果列表,然後搜索列表age < 40。 我對不對?

回答

4

可能是DBMS選擇做什麼。您的數據庫管理系統將查看SQL並生成一些可能的「執行計劃」,弄清楚它們是多麼「昂貴」,並選擇最好的一個。當然,您所描述的計劃是DMBS可能會考慮的計劃,但它不能100%保證選擇該計劃。

這取決於很多其他因素,包括數據的樣子。 DBMS將嘗試選擇儘可能早地過濾數據的計劃,以便使流經系統的數據最小化。如果DBMS可以看到只有極少數國家=「美國」,那麼它可能會首先選擇處理該部分查詢。這將使後續操作更便宜。

有關更多信息,請運行MYSQL EXPLAINdocumentation)以準確查看DBMS選擇執行的操作。