2017-01-29 2 views
0

큰 테이블 (60k 개 이상의 행)이 있는데이 테이블의 고유 한 행을 다른 테이블에 복사하려고합니다.INSERT INTO ... MySQL의 SELECT

INSERT INTO tbl2(field1, field2) 
SELECT DISTINCT field1, field2 
    FROM tbl1; 

를 다음 그러나 다음 중복 된 데이터를 필터링하는 SQL 파일을 생성, 누군가가이 과정

+2

가 확대? 가속 해? 귀하는 진술의 실행 계획을 공유 할 수 있습니까? – GurV

+0

실행 계획은? 이 문은 마이그레이션 파일의 일부분입니다. – madhur

+0

두 개의 필드에 대해 GROUP BY 쿼리로 실행될 수 있습니다. 이 경우 전체 테이블 스캔이 필요하며 인덱스가 도움이되지 않습니다. –

답변

1

테이블의 mysqldump를 실행을 가속화 할 수있는 방법을 제안 할 수 있습니다,이 쿼리를 실행하기 위해 나이를 취하고로 쿼리입니다 셸 명령 :

cat dump.sql | uniq > dump_filtered.sql 

생성 된 파일을 확인하십시오. 그런 다음 새 테이블을 작성하고 LOAD DATA INFILE과 함께 dump_filtered.sql 파일을로드하십시오.

0

이 시도 :

1. drop the destination table: DROP DESTINATION_TABLE; 
2. CREATE TABLE DESTINATION_TABLE AS (SELECT * FROM SOURCE_TABLE);