일반적인 데이터베이스 분류 방법
인터넷의 지속적인 발전과 함께 기업이 데이터 정보를 처리하는 데 사용할 수 있는 방법도 늘어나고 있는데, 오늘은 몇 가지 공통 데이터가 무엇인지 살펴보겠습니다. 분류 방법?
1, 커밋되지 않은 읽기, 커밋되지 않은 읽기.
한 거래가 다른 거래가 아직 제출하지 않은 콘텐츠를 읽는 것을 의미합니다. 이런 상황은 피해야 합니다. 다른 트랜잭션의 커밋되지 않은 데이터는 언제든지 롤백될 수 있으므로 프로그램은 언제든지 트랜잭션에서 커밋되지 않은 데이터를 읽는 것을 허용해서는 안 됩니다. 다른 트랜잭션에서 커밋되지 않은 데이터를 읽는 경우 이러한 상황을 더티 읽기(dirty read)라고 합니다. 더티 읽기 문제를 해결하려면 데이터베이스의 트랜잭션 격리 수준을 높이고 트랜잭션 격리 수준을 읽기 커밋으로 설정하면 됩니다.
2, 읽기 커밋됨.
이 격리 수준은 더티 읽기 문제를 해결할 수 있습니다.
이 격리 수준에서는 커밋되지 않은 두 트랜잭션 간의 병렬 실행이 허용되지 않지만, 하나의 트랜잭션이 실행되는 동안 다른 트랜잭션이 실행되고 제출될 수 있습니다. 이런 식으로 거래 전후에 두 번 선택된 특정 데이터 행의 값이 다를 수 있는 상황이 발생하게 됩니다. 값이 변경되는 이유는 산재된 트랜잭션 2가 데이터 행에 대해 업데이트 작업을 수행했기 때문입니다. 동일한 트랜잭션에서 서로 다른 값이 두 번 선택되는 문제를 반복 불가능 읽기 문제라고 합니다. 반복 불가능한 읽기 문제를 해결하려면 데이터의 격리 수준을 반복 가능한 읽기로 설정해야 합니다.
3, 반복해서 읽을 수 있습니다. 반복 가능한 읽기.
이 격리 수준에서는 반복 불가능한 읽기 문제를 해결할 수 있습니다.
이 격리 수준에서는 트랜잭션이 특정 행의 데이터를 사용하는 동안 다른 트랜잭션은 해당 행의 데이터에 대한 작업을 수행할 수 없습니다. 반복 가능한 읽기는 데이터베이스 행에 잠금을 추가해야 합니다. 이 격리 수준에서는 다른 트랜잭션이 여전히 테이블에 데이터를 삽입하고 삭제할 수 있으므로 트랜잭션 1을 실행하는 동안 특정 조건을 충족하는 행을 두 번 선택하면 두 번째 선택 후 두 번째 선택 후 , 또 다른 트랜잭션이 실행되면 동일한 조건을 충족하는 두 선택의 결과가 달라지므로 이 문제도 해결되었습니다. . 팬텀 읽기 문제를 해결하려면 데이터베이스의 격리 수준을 직렬화로 설정해야 합니다.
4, 직렬화, 직렬화.
직렬화는 환상 읽기 문제를 해결할 수 있습니다.
트랜잭션 실행이 완전히 직렬화되어야 합니다. 따라서 동시성의 효율성이 상실됩니다.
Mysql의 기본 격리 수준은 반복 읽기입니다.
간단히 말하면, 데이터에는 커밋되지 않은 읽기, 커밋된 읽기, 반복 가능한 읽기, 직렬화 등 낮은 것부터 높은 것까지 4가지 트랜잭션 격리 수준이 있습니다. 데이터베이스 트랜잭션 격리 수준과 관련된 세 가지 문제, 즉 더티 읽기(dirty read), 반복 불가능 읽기, 팬텀 읽기(phantom read)가 있습니다. 더티 읽기 문제는 읽기 커밋으로 해결해야 하지만 읽기 커밋으로 인해 반복 불가능한 읽기 문제가 발생합니다. 반복 불가능한 읽기 문제는 반복 읽기로 해결해야 하지만, 반복 읽기를 사용하면 팬텀 읽기 문제가 발생합니다. 가상 읽기 문제는 직렬화를 통해 해결해야 합니다.
추천 "mysql 동영상 튜토리얼"
위 내용은 일반적인 데이터베이스 분류 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!