两个表匹配更快的SQL查询

时间:2014-08-08 22:03:37

标签: mysql sql

我正在尝试使用以下查询执行两个表:

select * from task1,task2
where task1.From_Number=task2.To_Number
and task1.Start_Time<task2.Start_Time;

它最终将起作用,但永远都是如此。这些表有33列,一列有大约45k行,另外有500k行。各列中都有重复项,没有列是唯一的,因此不存在主键。表格是从电子表格中导入的。

有一堆电话记录,如上所述,每列中有几个重复记录。我该怎么做才能让这个查询更快地运行?我只匹配几列,但需要打印所有列并将结果输出到csv。

1 个答案:

答案 0 :(得分:1)

您可以做的最好的事情是在两个表中的两列上创建一个非唯一索引。

阅读MySQL documentation on creating an index

类似的东西:

create index task1_idx
on     task1
( From_Number
, Start_Time
)

create index task2_idx
on     task2
( To_Number
, Start_Time
)