2012-03-12 3 views
0

1 백만 개가 넘는 레코드가있는 MyIsam 테이블이 있습니다. 이 표를 각 행마다 업데이트해야합니다. 현명한 레코드 일괄 처리 및 그것에 대한 muti 스레드 스크립트 종류를 작성했습니다. 각 스크립트 스레드는 레코드 일괄 처리 만 처리합니다.MyIsam 테이블을 동시에 업데이트하는 방법은 무엇입니까?

이제 문제는 두 개의 배치가 동시에 실행 중일 때 하나의 업데이트가 다른 업데이트를 완료하기를 기다리는 것입니다. 이 지연을 피할 수 있습니까? 특히 데이터베이스의 레코드를 동시에 업데이트 할 수 있습니까?

제 경우에는 행이 다른 행에 의존하지 않으며 다시 덮어 쓰지 않습니다.

나는 TL_WRITE_ALLOW_WRITE에 관해 읽었습니다. 하지만 그것을 구현하는 방법을 몰라?

누구나 최선의 해결책을 제안 할 수 있습니까?

답변

1

편집을 시도하면 테이블이 잠길 수 있기 때문에 안타깝게도 MyIsam 테이블에서는이를 수행 할 수 없습니다. 하지만 InnoDB에서는 그렇게 할 수 있습니다.

+0

실제로 테이블을 InnoDb로 변환하고 작업을 실행하려고했습니다. 그것은 myIsam보다 더 많은 시간이 걸립니다. – codlib

+0

InnoDB의 성능이 동일합니다. 테이블이 올바르게 인덱싱 되었습니까? InnodBD와 MyISAM 간의 EXPLAIN 쿼리를 비교 했습니까? – rkosegi

관련 문제