다른 세션에서 사용하는 SERIALIZABLE 트랜잭션의 경우 중요합니까? 자동 커밋 또는 READ COMMITED 격리 수준?PostgreSQL의 분리 레벨의 혼합
다른 말로하면 여러 프로세스/스레드 (또는 조심해야 할 다른 것)에서 데이터베이스에 액세스 할 때 격리 수준 (자동 커밋)을 혼합 할 때 위험이 있습니까?
재시도 등을 요구하는 SERIALIZABLE 트랜잭션과 같은 "일반적인"문제에 대해 알고 있습니다. 서로 다른 격리 수준을 혼합 할 때 발생할 수있는 문제가 무엇인지 묻습니다.
편집 :
http://www.postgresql.org/docs/9.4/static/transaction-iso.html에서 : 직렬화 거래의
일관된 사용은 개발을 단순화 할 수 있습니다. 동시 직렬화 가능 트랜잭션 세트가 한 번에 하나씩 실행될 때와 동일한 효과를 갖게된다는 보장은 서면 작성과 같이 단일 트랜잭션이 단독으로 실행될 때 올바른 작업을 수행한다는 것을 입증 할 수있는 경우, 이러한 다른 트랜잭션이 수행 할 수있는 작업에 대한 정보가 없어도 직렬화 가능한 트랜잭션의 혼합에서 올바른 작업을 수행 할 것이라는 확신을 가질 수 있습니다.
격리 수준을 혼합하면 좋은 생각이 아닐 수 있습니다. 반면에 SERIALIZABLE 수준을 일관되게 사용하는 것이 좋으며 혼합 수준을 분리하는 것이 좋지 않다고 말하는 것입니다.
아니요, 문제가 아니어야합니다. (단, 이에 대한 참고 자료는 없습니다) –
@a_horse_with_no_name 여기에 있습니다. 데이터베이스가 무엇인지는 알고 있지만 구체적인 참조를 찾을 수 없습니다 :-) –
아마 Postgres 메일 링리스트에 게시하면 더 나은 답변을 얻을 수 있습니다. 주요 개발자의 대부분은 거기에서 "놀다". 누군가가 대답 할 수 있다면, 그것들입니다. –