我是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分钟。
有没有办法加快速度。
非常感谢。
答案 0 :(得分:1)
您可能希望为表添加索引,尤其是Alignment.Chain_id1
,Alignment.Chain_id2
和Centroid.Chain_id
。这应该有很多帮助。