2011-02-05 2 views
0

MyISAM 테이블을 InnoDB로 옮길 것을 고려 중입니다. 고유 한 값으로 설정된 열이있는 테이블이 많고 perl을 사용합니다. InnoDB로 전환하여 테이블 수준 잠금보다는 행 수준 잠금을 활용하고 포크를 사용하면 중복 항목에 문제가 발생합니까? (즉, 많은 행을 동시에 테이블에 삽입 할 것이므로)InnoDB 및 고유 레코드를 사용하여 포크를 만들 수 있습니까?

답변

0

인덱스가 UNIQUE 인 경우 이러한 제한 조건을 위반하는 행은 허용되지 않습니다.

그러나 트랜잭션 내에서 삽입을 수행 할 때 일부 동시성 문제가 발생할 수 있습니다. 두 개의 중복 행이 두 개의 서로 다른 동시 트랜잭션에 삽입되면 그 중 하나는 커미트에 실패합니다.

0

고유 인덱스를 작성하면 고유성을 얻을 수 있습니다. 이 경우 DB 엔진이 처리합니다. 또한 트랜잭션을 적절히 사용하면 동시성 문제를 피할 수 있습니다.

관련 문제