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 중국어 웹사이트의 기타 관련 기사를 참조하세요!