让我们说我们有两个表-表A和表B,两个表每个都有500万条记录。它们具有公共字段,ID和名称。我想检查一下,如果我们在连接表时对连接字段应用索引,那么会对索引产生什么影响;在连接表时,对选择列的索引会有什么影响?下面是查询
select t1.name from table A t1 inner join table B t2 on t1.id=t2.id;
我应该在哪个字段上创建索引,以便获得更快的结果。我应该在ID或名称上添加索引吗?请帮助
我的期望是如果我们将索引放在id列上,那么查询将使结果的持续时间更短,而不是如果我们将索引放在name字段上。
寻求性能改善
我的期望是如果将索引放在id列上,那么查询将使结果的持续时间缩短,而不是如果将索引放在name字段上。
答案 0 :(得分:0)
对于此查询:
select t1.name
from tableA t1 inner join
tableB t2
on t1.id = t2.id;
我希望最好的索引是tableB(id)
。这是用于JOIN
的密钥。
在某些情况下,tableA(id, name)
上的索引可能是最佳选择。如果tableA
比tableB
大得多,那就尤其如此。