当我们在属性上创建索引时,我们会更快地找到记录,因为索引是一棵树,我们浏览排序顺序的值。
例如对于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