从包含2亿条记录的表中选择一些记录

时间:2010-02-16 17:18:23

标签: mysql

我是sql的新手,所以我的术语可能不太正确。

我有一张表Alignment,它有2.5亿条记录。它有两列chain_id1和chain_id2。其中一些链是另一个表Centroid的chain_id的外键,它有22000个记录。

基本上我需要所有那些将两个链都作为质心的记录。

我尝试使用以下查询:

insert into NewAlignment(...) 
select .... 
from Alignment as A
   , Centroid  as C1
   , Centroid  as C2 
where (A.chain_id1 = C1.chain_id) 
  and (A.chain_id2 = C2.chain_id)

但是上面的查询只是暂停,这可以理解表格的大小。

所以我尝试编写脚本来扫描表并检查值,然后插入新表中。以这种方式,1000000条记录花了大约13分钟。

有没有办法加快速度。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可能希望为表添加索引,尤其是Alignment.Chain_id1Alignment.Chain_id2Centroid.Chain_id。这应该有很多帮助。