>  기사  >  데이터 베이스  >  MySQL 데이터베이스 잠금은 세분화에 따라 무엇으로 나눌 수 있습니까?

MySQL 데이터베이스 잠금은 세분화에 따라 무엇으로 나눌 수 있습니까?

青灯夜游
青灯夜游원래의
2021-04-21 18:38:573905검색

세분성에 따라 나눌 수 있습니다. 1. 행 수준 잠금, MySQL에서 가장 정밀한 잠금 세분성. 이는 현재 작동 중인 행만 잠긴다는 의미입니다. 2. 테이블 수준 잠금, MySQL에서 가장 큰 잠금 세분성 잠금은 잠금을 의미합니다. 현재 작업의 전체 테이블 3. 페이지 수준 잠금, 잠금 세분성이 행 수준 잠금과 테이블 수준 잠금 사이에 있는 MySQL의 잠금입니다.

MySQL 데이터베이스 잠금은 세분화에 따라 무엇으로 나눌 수 있습니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

관계형 데이터베이스에서 데이터베이스 잠금은 잠금 세분성에 따라 행 수준 잠금(INNODB 엔진), 테이블 수준 잠금(MYISAM 엔진), 페이지 수준 잠금(BDB 엔진)으로 나눌 수 있습니다.

MyISAM 및 InnoDB 스토리지 엔진에서 사용되는 잠금:

  • MyISAM은 테이블 수준 잠금을 사용합니다.

  • InnoDB는 행 수준 잠금과 테이블 수준 잠금을 지원하며 기본값은 행 수준 잠금입니다.

행 수준 잠금, 테이블 수준 잠금 및 페이지 수준 잠금 비교

  • 행 수준 잠금: MySQL에서 가장 세부적인 잠금으로, 현재 작업의 행만 잠긴다는 의미입니다. . 행 수준 잠금은 데이터베이스 작업의 충돌을 크게 줄일 수 있습니다. 잠금 세분성은 가장 작지만 잠금 오버헤드도 가장 큽니다. 행 수준 잠금은 공유 잠금과 배타적 잠금으로 구분됩니다.

    특징: 높은 오버헤드, 느린 잠금이 발생할 수 있습니다. 잠금 세분성은 가장 작고 잠금 충돌 가능성은 가장 낮으며 동시성은 가장 높습니다.

  • 테이블 수준 잠금: MySQL에서 잠금 세분성이 가장 높은 잠금입니다. 이는 현재 작업의 전체 테이블을 잠그는 것을 의미합니다. 구현이 간단하고 리소스를 덜 소비하며 대부분의 MySQL 엔진에서 지원됩니다. 가장 일반적으로 사용되는 MyISAM 및 InnoDB는 테이블 수준 잠금을 지원합니다. 테이블 수준 잠금은 테이블 공유 읽기 잠금(공유 잠금)과 테이블 배타적 쓰기 잠금(배타적 잠금)으로 구분됩니다.

    특징: 낮은 오버헤드, 빠른 잠금, 큰 잠금 세분성, 가장 높은 잠금 충돌 가능성 및 가장 낮은 동시성.

  • 페이지 수준 잠금: 행 수준 잠금과 테이블 수준 잠금 사이에 잠금 세분성이 있는 MySQL의 잠금입니다. 테이블 수준 잠금은 빠르지만 충돌이 많습니다. 행 수준 잠금은 충돌이 거의 없지만 느립니다. 따라서 손상된 페이지 수준이 채택되어 한 번에 인접한 레코드 그룹을 잠급니다.

    특징: 오버헤드 및 잠금 시간은 테이블 잠금과 행 잠금 사이에 제한되어 있습니다. 잠금 세분성은 테이블 잠금과 행 잠금 사이에 제한되어 있으며 동시성은 평균입니다.

관련 무료 학습 권장 사항: mysql 비디오 튜토리얼

위 내용은 MySQL 데이터베이스 잠금은 세분화에 따라 무엇으로 나눌 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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