세분성에 따라 나눌 수 있습니다. 1. 행 수준 잠금, MySQL에서 가장 정밀한 잠금 세분성. 이는 현재 작동 중인 행만 잠긴다는 의미입니다. 2. 테이블 수준 잠금, MySQL에서 가장 큰 잠금 세분성 잠금은 잠금을 의미합니다. 현재 작업의 전체 테이블 3. 페이지 수준 잠금, 잠금 세분성이 행 수준 잠금과 테이블 수준 잠금 사이에 있는 MySQL의 잠금입니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
관계형 데이터베이스에서 데이터베이스 잠금은 잠금 세분성에 따라 행 수준 잠금(INNODB 엔진), 테이블 수준 잠금(MYISAM 엔진), 페이지 수준 잠금(BDB 엔진)으로 나눌 수 있습니다.
MyISAM 및 InnoDB 스토리지 엔진에서 사용되는 잠금:
MyISAM은 테이블 수준 잠금을 사용합니다.
InnoDB는 행 수준 잠금과 테이블 수준 잠금을 지원하며 기본값은 행 수준 잠금입니다.
행 수준 잠금, 테이블 수준 잠금 및 페이지 수준 잠금 비교
행 수준 잠금: MySQL에서 가장 세부적인 잠금으로, 현재 작업의 행만 잠긴다는 의미입니다. . 행 수준 잠금은 데이터베이스 작업의 충돌을 크게 줄일 수 있습니다. 잠금 세분성은 가장 작지만 잠금 오버헤드도 가장 큽니다. 행 수준 잠금은 공유 잠금과 배타적 잠금으로 구분됩니다.
특징: 높은 오버헤드, 느린 잠금이 발생할 수 있습니다. 잠금 세분성은 가장 작고 잠금 충돌 가능성은 가장 낮으며 동시성은 가장 높습니다.
테이블 수준 잠금: MySQL에서 잠금 세분성이 가장 높은 잠금입니다. 이는 현재 작업의 전체 테이블을 잠그는 것을 의미합니다. 구현이 간단하고 리소스를 덜 소비하며 대부분의 MySQL 엔진에서 지원됩니다. 가장 일반적으로 사용되는 MyISAM 및 InnoDB는 테이블 수준 잠금을 지원합니다. 테이블 수준 잠금은 테이블 공유 읽기 잠금(공유 잠금)과 테이블 배타적 쓰기 잠금(배타적 잠금)으로 구분됩니다.
특징: 낮은 오버헤드, 빠른 잠금, 큰 잠금 세분성, 가장 높은 잠금 충돌 가능성 및 가장 낮은 동시성.
페이지 수준 잠금: 행 수준 잠금과 테이블 수준 잠금 사이에 잠금 세분성이 있는 MySQL의 잠금입니다. 테이블 수준 잠금은 빠르지만 충돌이 많습니다. 행 수준 잠금은 충돌이 거의 없지만 느립니다. 따라서 손상된 페이지 수준이 채택되어 한 번에 인접한 레코드 그룹을 잠급니다.
특징: 오버헤드 및 잠금 시간은 테이블 잠금과 행 잠금 사이에 제한되어 있습니다. 잠금 세분성은 테이블 잠금과 행 잠금 사이에 제한되어 있으며 동시성은 평균입니다.
관련 무료 학습 권장 사항: mysql 비디오 튜토리얼
위 내용은 MySQL 데이터베이스 잠금은 세분화에 따라 무엇으로 나눌 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!