當我們在屬性上創建索引時,我們會更快地找到記錄,因爲索引是一棵樹,我們瀏覽排序順序的值。
例如對於SELECT * from branches where name='Washington
通過索引,我們將按字典順序導航以在記錄時間內達到記錄。
但是,當我們在連接中使用的列索引時,這是如何工作的?
例如連接的索引列
SELECT BILLS.NAME NAME, BILLS.AMOUNT AMOUNT FROM BILLS,BANK_ACCOUNTS WHERE BILLS.ACCOUNT_ID = BANK_ACCOUNTS.ACCOUNT_ID
如果我們已經創建了一個指數BILLS(ACCOUNT_ID)
和BANK_ACCOUNTS(ACCOUNT_ID)
是怎樣的導航速度更快?我們只取每個值BANK_ACCOUNTS.ACCOUNT_ID
,並使用BILLS
的索引樹來查找匹配記錄?
如果這是如何工作的,那麼爲什麼人們通常會建議在連接中使用的列中創建索引。
在我看來,只有1個索引被創建,並且將用於等號比較器左側的表格,即BILLS
。或者我錯了?
你應該閱讀[all of this](http://use-the-index-luke.com/) - 尤其是* Join Operation *部分。 – 2013-03-11 21:58:49