我是 sql 新手,所以我的术语可能不太正确。
我有一个 Alignment 表,其中有 2.5 亿条记录。它有两列 chain_id1 和 chain_id2。其中一些链是来自另一个具有 22000 条记录的 Centroid 表的 chain_id 的外键。
基本上我需要所有以两条链为质心的记录。
我尝试使用以下查询:
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 分钟。
有什么办法可以加快速度吗?
非常感谢。
最佳答案
您可能需要向表添加索引,尤其是 Alignment.Chain_id1
、Alignment.Chain_id2
和 Centroid.Chain_id
。这应该会有很大帮助。
关于mysql - 从包含2亿条记录的表中选择一些记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274826/