추천 튜토리얼: sql 튜토리얼
데이터베이스 동시 작업이란? 데이터베이스는 여러 사용자가 사용할 수 있는 공유 리소스입니다. 이러한 사용자 프로그램은 하나씩 순차적으로 실행될 수 있습니다. 데이터베이스에 액세스하려면 한 번에 하나의 사용자 프로그램만 실행되어야 합니다. 다른 사용자 프로그램은 데이터베이스에 액세스하기 전에 이 사용자 프로그램이 종료될 때까지 기다려야 합니다. 그러나 사용자 프로그램이 대량의 데이터 입출력 교환을 포함하는 경우 데이터베이스 시스템은 대부분의 시간 동안 유휴 상태가 됩니다. 따라서 데이터베이스 자원을 최대한 활용하고 데이터베이스 공유 자원의 특성을 활용하기 위해서는 여러 사용자가 데이터베이스에 병렬로 접근할 수 있도록 허용해야 한다. 그러나 이로 인해 여러 사용자 프로그램이 동일한 데이터에 동시에 액세스하게 됩니다. 동시 작업을 제어하지 않으면 잘못된 데이터에 액세스하여 저장될 수 있으므로 데이터베이스 관리 시스템은 동시성 제어 메커니즘을 제공해야 합니다. 동시성 제어 메커니즘의 품질은 데이터베이스 관리 시스템의 성능을 측정하는 중요한 지표 중 하나입니다.
데이터베이스 동시 작업으로 인한 문제
(1) Lost update
둘 이상의 것이 동일한 데이터를 읽고 수정하게 되면 업데이트 손실 문제, 즉 후자의 업데이트가 발생하게 됩니다. 즉, 트랜잭션 A와 B가 진행 중일 때 트랜잭션 A는 데이터를 변경했지만 제출하지 않았고, B는 동일한 데이터를 수정했습니다. (2) Non-repeatable read두 개의 데이터가 특정 데이터를 읽으면 다른 트랜잭션이 해당 데이터에 대한 업데이트를 수행합니다. , 그리고 현재 트랜잭션이 반복됩니다. 데이터를 읽을 때(첫 번째 읽기와 동일한 값이길 바랍니다) 얻은 데이터는 이전 데이터와 다릅니다. 이는 트랜잭션 B가 처음 읽은 후 데이터를 수정했기 때문입니다. 데이터를 다시 읽으면 처음 읽은 데이터와 동일하지 않습니다
(3) '더티 데이터' 읽기한 트랜잭션이 특정 데이터를 수정하면 다른 트랜잭션이 해당 데이터를 읽습니다. 어떤 이유에서든 이전 트랜잭션은 수정된 데이터의 수정을 취소하고 수정된 데이터를 원래 값으로 복원합니다. 그런 다음 후자의 트랜잭션에서 읽은 데이터가 사용 가능한 데이터와 일치하지 않습니다. 이를 더티 데이터 읽기라고 합니다
참고: 또 다른 "
Ghost Data"라고 불리는 고스트 데이터는 더티 데이터와 비슷하지만 고스트 데이터는 트랜잭션이 제출된 후 읽은 데이터를 말하지만 읽은 후 이전 트랜잭션이 복원되는 반면, 더티 데이터는 아직 제출되지 않은 데이터를 의미합니다. 전에 읽어보세요
위 내용은 동시 데이터베이스 작업으로 인해 어떤 문제가 발생할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!