> 데이터 베이스 > MySQL 튜토리얼 > 잠금 없이 MySQL 슬레이브 데이터베이스에서 데이터를 선택하는 방법은 무엇입니까?

잠금 없이 MySQL 슬레이브 데이터베이스에서 데이터를 선택하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-13 05:02:09
원래의
530명이 탐색했습니다.

How to Select Data from a MySQL Slave Database Without Locking?

MySQL에서 잠금 없이 데이터 선택

이벤트에 의해 적극적으로 수정되는 테이블을 쿼리할 때 테이블 잠금이 발생할 수 있습니다. 성능에 영향을 미칩니다. 이러한 잠금을 발생시키지 않는 MySQL에서 select 문을 수행할 수 있는 방법이 있습니까?

슬레이브 데이터베이스용 솔루션

"MYSQL WITH"라는 제목의 기사에 언급된 솔루션 NOLOCK"은 슬레이브 데이터베이스이므로 이 경우에는 적용할 수 없습니다. 또한 트랜잭션 격리 수준을 READ-UNCOMMITTED로 설정하면 STATEMENT 기반 바이너리 로깅을 위해 구성된 슬레이브 데이터베이스에 오류가 발생합니다.

MySQL 관련 방법론

MySQL 슬레이브 데이터베이스에서 데이터를 선택하는 동안 잠김을 방지하려면 다음 접근 방식을 사용할 수 있습니다.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;
로그인 후 복사
로그인 후 복사

이것은 메서드는 임시로 트랜잭션 격리 수준을 READ UNCOMMITTED로 설정합니다. 이렇게 하면 select 문이 잠금을 획득하지 않고 계속 진행될 수 있습니다. 그러나 이 설정은 후속 COMMIT 문이 있는 트랜잭션 내에서만 사용할 수 있다는 점을 기억하는 것이 중요합니다.

개선 제안

대안으로 다음을 사용하는 것을 고려할 수 있습니다. Michael Mior가 제안한 다음 구문은 다음과 같습니다.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;
로그인 후 복사
로그인 후 복사

위 내용은 잠금 없이 MySQL 슬레이브 데이터베이스에서 데이터를 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿