联接时索引对不同列的影响

时间:2019-05-28 12:28:21

标签: sql indexing

让我们说我们有两个表-表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字段上。

1 个答案:

答案 0 :(得分:0)

对于此查询:

select t1.name
from tableA t1 inner join
     tableB t2
     on t1.id = t2.id;

我希望最好的索引是tableB(id)。这是用于JOIN的密钥。

在某些情况下,tableA(id, name)上的索引可能是最佳选择。如果tableAtableB大得多,那就尤其如此。