我有两个表正在尝试使用以下查询执行匹配:
select * from task1,task2
where task1.From_Number=task2.To_Number
and task1.Start_Time<task2.Start_Time;
它最终会起作用,但需要很长时间。这些表有 33 列,其中一个表大约有 45k 行,其他表有 500k 行。各个列中都有重复项,并且没有列是唯一的,因此没有主键。这些表格是从电子表格导入的。
有一堆电话通话记录,如上所述,每列中有几个重复项。我该怎么做才能让这个查询运行得更快?我只匹配几列,但需要打印所有列并将结果输出到 csv 中。
最佳答案
您能做的最好的事情就是在两个表的两列上创建一个非唯一索引。
阅读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
)
关于mysql - 两个表匹配的 SQL 查询速度更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212899/