테이블 A에 1,000 만 개의 행과 테이블 B에 250 만 개의 행이있는 두 개의 거대한 테이블이 있습니다. 두 테이블 모두 공통 필드 ID를 가지고 있습니다. 표 A에는 ~ 250 열이 있고 표 B에는 5 열이 있습니다. 테이블 B에있는 모든 ID는 테이블 A에 있습니다. 테이블 A에 테이블 B에 필드를 추가하고 싶습니다. 두 가지 옵션이 있는데 둘 다 많은 시간을 사용하고 있습니다. 나는 어느 것이 효율적인지 알고 싶다.열 추가 및 업데이트/추가 행이있는 새 테이블 작성
옵션 1 :
alter table B add column field date;
update B join A using(id) set a.field=b.field;
옵션 2 :
create table C as select a.*,b.field from B join A using(id);
id
의 MyISAM가있는 테이블 ENGINE 모두 연동된다.
어느 옵션이 더 빠릅니까?
옵션 1에서 열을 추가하는 데 시간이 걸리므로 업데이트하는 동안 많은 시간이 상태 copy to tmp table
에 대해 취해 졌기 때문에 2라고 생각합니다. 옵션 1에서는 '데이터 전송 중'상태로 바로 시작합니다. 나 맞아?
다른 빠른 방법으로이 작업을 수행 할 수 있습니까? 당신이보기를 만들 수 있습니다 당신은 단지 정보를 선택 whant 경우
옵션 2를 실행할 수 있습니다. –
뭔가 빠진 것 같아요.하지만 데이트 콜럼을 A에서 B로 옮기려는 거예요? 그게 맞다면 내가 할 수 있을지 물어봐도 될까요? – Melon
@Melon B의 ID에 대해서는 A에서 날짜 형식으로 된 필드를 가져와야합니다. 다른 목적으로 CSV에 넣을 B의 ID에만 필요합니다. –