2013-01-18 1 views
1

Django documentation은 트랜잭션 관리에 중점을 둡니다. 나는 Django가 읽기 일관성을 보장한다는 것을 당황스럽게 생각합니다. 하나의 요청이 여러 개의 읽기 쿼리를 실행하고 두 번째 요청이 이러한 쿼리 사이에서 데이터베이스에 쓰는 경우 첫 번째 요청에서 수정 사항을 볼 수 없다는 보장이 있습니까?단일 Django 요청 내에서 실행되는 모든 쿼리는 동일한 DB 스냅 샷에서 작동합니까?

그런 보장이없는 경우
c1 = select count(*) from Users 
    <--- here User added by some other request 
c2 = select count(*) from Users 
assert c1 == c2 <-- Is this always true? 

,이 같은 분리를 달성 할 수 있습니다 :

는 간단한 예제와 문제를 설명하기 위해?

+0

좋은 질문입니다. 나는 당신이 그렇게 말한 것을 알고 싶습니다. – PepperoniPizza

답변

0

Django는 이러한 일을 보장하지 않습니다. 데이터베이스에 달려 있습니다. 그러나 Django는 기본적으로 자체 요청 내에서 각 요청을 처리합니다. 이는 독서가 격리되어 있음을 의미합니다.

관련 문제