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