簡體   English   中英

從包含2億條記錄的表中選擇一些記錄

[英]selecting some records from table containing 200 million records

我是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)

但是上面的查詢只是停頓了,從表的大小來看這是可以理解的。

因此,我嘗試編寫腳本來掃描表並檢查值,然后將其插入新表中。 以這種方式,一百萬條記錄大約花費了13分鍾。

有什么辦法可以加快速度。

非常感謝。

您可能希望向表中添加索引,尤其是在Alignment.Chain_id1Alignment.Chain_id2Centroid.Chain_id 這應該有很大幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM