저는 SQL에 익숙하지 않아 제 용어가 정확하지 않을 수 있습니다.2 억 개의 레코드가 들어있는 테이블에서 일부 레코드를 선택하십시오.
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 분이 걸렸습니다.
속도를 높이는 방법이 있습니까?
고마워요.
Centroid 테이블에 몇 개의 고유 한 chain_id 값이 있습니까? – goat