당신이 묻는 것은 완전히 명확하지 않습니다. 잠금을 사용하면 한 사용자 만 주어진 시간에 주어진 행을 수정하려고 시도합니다. 행 수준 잠금은 수정중인 행 하나만 잠겨 있음을 의미합니다. 일반적인 대안은 수정 기간 동안 전체 테이블을 잠그거나 테이블의 일부 서브 세트를 잠그는 것입니다. 행 수준 잠금은 단순히 행의 하위 집합을 여전히 가장 낮은 수로 줄여서 무결성을 보장합니다.
아이디어는 한 사용자가 다른 사용자가 다른 것들을 수정할 수 없도록 한 가지를 수정할 수있게하는 것입니다. 그러나 어떤 경우에는 이것이 거짓 긍정의 무엇인가 될 수 있다는 것을 주목할 가치가 있습니다. 일부 데이터베이스는 행 수준의 잠금을 지원하지만 행 수준의 잠금은 테이블의 더 큰 부분을 잠그는 데 상당히 비싸지 만 비생산적 일 수 있습니다.
편집 : 원본 게시물을 수정하면 도움이되지만 실제로는 그렇지 않습니다. 우선, 열의 크기와 관련된 하드웨어의 레벨은 엄청난 효과가 있습니다 (12 바이트 스트라이프 15K SAS 하드 드라이브에 8 바이트 행을 삽입하는 것은 단일 소비자 클래스 하드 드라이브에 1 메가 바이트 행을 삽입하는 것보다 훨씬 빠름)).
두 번째로, 이는 동시 사용자 수에 관한 것이므로 삽입 패턴이 큰 차이를 만듭니다. 오전 3시에 삽입 된 1000 개의 행은 전혀 눈치 채지 못할 것입니다. 하루 동안 균등하게 삽입 된 1000 개의 행은 조금 더 많음을 의미합니다 (그러나 아마도 조금만). 100 개의 다른 사용자가 즉시 데이터를 필요로 할 때 일괄 적으로 삽입 된 1000 개의 행은 누군가를 해고시킬 수 있습니다 (특히 100 개 중 하나가 회사의 소유자 인 경우).
원본 게시물에 대한 편집 내역을 참조하십시오. – Psaniko
감사합니다. 두 유형을 모두 테스트하고 어떤 것이 나를 위해 작동하는지 확인합니다. – Psaniko