30M + 행이있는 테이블이 있으며 각 인덱스 업데이트가 비쌉니다. 때때로 하나의 삽입물에 5000 개 이상의 행을 업데이트하거나 추가해야합니다. 모든 행이 새로운 행인 경우가 있습니다. 일부는 새로운 행인 경우가 있습니다.하나의 중복 된 업데이트 xx에 삽입 - 테이블의 INDEXes도 업데이트합니까?
업데이트를 사용할 수 없습니다. 어떤 것이 이미 테이블에 있는지 모르므로 INSERT ..를 사용합니다. 단일 열에 중복 키 업데이트를 사용합니다.
가끔은 5 초를 초과하는 많은 시간이 걸립니다.
더 좋은 방법이 있습니까? 어쩌면 내가 충분히 자신을 설명하지 않았다 :)
mmm. 저는 5000 개의 행을 분리 된 값을 가진 하나의 삽입물에 넣었습니다. 테이블을 잠그고 효과를 볼 수 있습니다. – sbargay
이미 단일 삽입 문에있는 경우 테이블을 잠그면 차이가 발생하지 않습니다. INSERT 대신에 REPLACE를 사용하면 어떻게됩니까? – awm
잠금이 많이 변경되지 않았습니다. 교체가 많은 문제가 될 것입니다. 인덱스를 다시 작성하지 않습니까? – sbargay