>  기사  >  데이터 베이스  >  일반적인 데이터베이스 분류 방법

일반적인 데이터베이스 분류 방법

angryTom
angryTom원래의
2019-10-30 14:08:293465검색

일반적인 데이터베이스 분류 방법

일반적인 데이터베이스 분류 방법

인터넷의 지속적인 발전과 함께 기업이 데이터 정보를 처리하는 데 사용할 수 있는 방법도 늘어나고 있는데, 오늘은 몇 가지 공통 데이터가 무엇인지 살펴보겠습니다. 분류 방법?

1, 커밋되지 않은 읽기, 커밋되지 않은 읽기.

한 거래가 다른 거래가 아직 제출하지 않은 콘텐츠를 읽는 것을 의미합니다. 이런 상황은 피해야 합니다. 다른 트랜잭션의 커밋되지 않은 데이터는 언제든지 롤백될 수 있으므로 프로그램은 언제든지 트랜잭션에서 커밋되지 않은 데이터를 읽는 것을 허용해서는 안 됩니다. 다른 트랜잭션에서 커밋되지 않은 데이터를 읽는 경우 이러한 상황을 더티 읽기(dirty read)라고 합니다. 더티 읽기 문제를 해결하려면 데이터베이스의 트랜잭션 격리 수준을 높이고 트랜잭션 격리 수준을 읽기 커밋으로 설정하면 됩니다.

2, 읽기 커밋됨.

이 격리 수준은 더티 읽기 문제를 해결할 수 있습니다.

이 격리 수준에서는 커밋되지 않은 두 트랜잭션 간의 병렬 실행이 허용되지 않지만, 하나의 트랜잭션이 실행되는 동안 다른 트랜잭션이 실행되고 제출될 수 있습니다. 이런 식으로 거래 전후에 두 번 선택된 특정 데이터 행의 값이 다를 수 있는 상황이 발생하게 됩니다. 값이 변경되는 이유는 산재된 트랜잭션 2가 데이터 행에 대해 업데이트 작업을 수행했기 때문입니다. 동일한 트랜잭션에서 서로 다른 값이 두 번 선택되는 문제를 반복 불가능 읽기 문제라고 합니다. 반복 불가능한 읽기 문제를 해결하려면 데이터의 격리 수준을 반복 가능한 읽기로 설정해야 합니다.

3, 반복해서 읽을 수 있습니다. 반복 가능한 읽기.

이 격리 수준에서는 반복 불가능한 읽기 문제를 해결할 수 있습니다.

이 격리 수준에서는 트랜잭션이 특정 행의 데이터를 사용하는 동안 다른 트랜잭션은 해당 행의 데이터에 대한 작업을 수행할 수 없습니다. 반복 가능한 읽기는 데이터베이스 행에 잠금을 추가해야 합니다. 이 격리 수준에서는 다른 트랜잭션이 여전히 테이블에 데이터를 삽입하고 삭제할 수 있으므로 트랜잭션 1을 실행하는 동안 특정 조건을 충족하는 행을 두 번 선택하면 두 번째 선택 후 두 번째 선택 후 , 또 다른 트랜잭션이 실행되면 동일한 조건을 충족하는 두 선택의 결과가 달라지므로 이 문제도 해결되었습니다. . 팬텀 읽기 문제를 해결하려면 데이터베이스의 격리 수준을 직렬화로 설정해야 합니다.

4, 직렬화, 직렬화.

직렬화는 환상 읽기 문제를 해결할 수 있습니다.

트랜잭션 실행이 완전히 직렬화되어야 합니다. 따라서 동시성의 효율성이 상실됩니다.

Mysql의 기본 격리 수준은 반복 읽기입니다.

간단히 말하면, 데이터에는 커밋되지 않은 읽기, 커밋된 읽기, 반복 가능한 읽기, 직렬화 등 낮은 것부터 높은 것까지 4가지 트랜잭션 격리 수준이 있습니다. 데이터베이스 트랜잭션 격리 수준과 관련된 세 가지 문제, 즉 더티 읽기(dirty read), 반복 불가능 읽기, 팬텀 읽기(phantom read)가 있습니다. 더티 읽기 문제는 읽기 커밋으로 해결해야 하지만 읽기 커밋으로 인해 반복 불가능한 읽기 문제가 발생합니다. 반복 불가능한 읽기 문제는 반복 읽기로 해결해야 하지만, 반복 읽기를 사용하면 팬텀 읽기 문제가 발생합니다. 가상 읽기 문제는 직렬화를 통해 해결해야 합니다.

추천 "mysql 동영상 튜토리얼"

위 내용은 일반적인 데이터베이스 분류 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.