【问题标题】:Benefit of creating index on both table in case of joining 2 tables在连接 2 个表的情况下在两个表上创建索引的好处
【发布时间】:2018-12-05 16:41:09
【问题描述】:

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

表1:

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

:第 10000 行

表2:

(键 NUMERIC(24,6),City VARCHAR(255))

:第 600 行

虽然原始架构很复杂,但上面只是其中的一部分。

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

SQL:

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

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

【问题讨论】:

  • 你的数据库是mysql还是sql-server? (请去掉多余的标签)。

标签: mysql


【解决方案1】:

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

CREATE INDEX index_name ON table2 (Key, City);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2013-02-19
    • 2019-09-08
    • 2012-03-25
    相关资源
    最近更新 更多