在联接两个表的情况下在两个表上创建索引的好处

时间:2018-12-05 07:49:59

标签: mysql

我有2个表Table1,Table2,它们具有以下架构。

表1:

  

(PolicyHolderKey NUMERIC(24,6),Key NUMERIC(24,6))

:10000行

表2:

  

(键NUMERIC(24,6),城市VARCHAR(255))

:第600行

尽管原始模式很复杂,但是上面只是其中一部分。

现在,如果我将在两个表的列“ KEY”上创建索引并执行以下查询,那么在性能方面有什么好处:

SQL:

SELECT table1.PolicyHolderKey,table1.Key,table2.City
FROM table1
INNER JOIN table2 ON table1.Key=table2.Key** 

或者如果我要在一个行数较少的表上创建索引并执行与上面相同的查询。

1 个答案:

答案 0 :(得分:2)

作为第一尝试,您可以尝试在第二个表中的(Key, City)上创建索引。然后,MySQL只需对第一个表进行全表扫描,但随后将能够立即查找每个键值并检索选择请求的两列。

CREATE INDEX index_name ON table2 (Key, City);