执行两个mysql表的比较操作太久了

时间:2012-09-22 06:39:11

标签: mysql

我有vp​​s Mem:524(215used)交换:524(75used),mysql 5.1.61有三个表。

包含一列'数据'的表'new'包含100 000条记录。

  

record1

     

record2

     

RECORD3

带有一列'数据'的表'old'包含1 000 000条记录。

  

RECORD1

     

RECORD4

     

record5

表'结果'也有一列“数据”。

我将表'new'与表'old'进行比较并插入表'result'记录,这些记录不在表'old'中。在这个例子中它将是

  

RECORD2

     

RECORD3

我使用查询

INSERT INTO result 

SELECT data FROM new 

LEFT JOIN old USING (data) 

WHERE old.data IS NULL

我的问题 - 此查询执行的时间超过一小时或更多(我不能等待更多)。

我想知道更快速的这种mysql操作方法。理想 - 10-20分钟。

1 个答案:

答案 0 :(得分:1)

我认为这个查询会更快:

insert into result
select data 
from new n
where not exists 
(select 1 from old where data = n.data)

datanew表中提交的old上的索引(但不在result表中) 将显着提高性能。

您可以按以下方式添加索引:

create index ind1 on old(data)
相关问题