mysql 동시접속시 동작특성에 관해...

mysql 동시접속시 동작특성에 관해...

QA

mysql 동시접속시 동작특성에 관해...

본문

1.

mysql 테이블은 한개 쿼리가 완료될 때까지 다른 쿼리들을 대기시킨다고 알고 있는데 맞나요?

그리고 이런 특징을 무엇이라고 하나요?

 

2. 만약 쿼리 단위로 테이블 접속 순서를 정한다면

a사용자      b사용자

1) select 

                 2)select

                 3)update

4)update

이렇게 동시성 문제(?)로 인해 잘못된 값이 조회되거나 잘못된 조회값으로 잘못된 update가 이루어지는 경우가 발생하나요?

 

3. 이 문제를 해결하기 위해 php 한페이지 단위로 테이블 우선접속 권한을 줄 수 있나요?

 

4. 트랜잭션 단위로 쿼리를 관리하면 위 2번 문제가 해결되나요?

 

이 질문에 댓글 쓰기 :

답변 2

1. 예, 맞습니다. MySQL에서는 쿼리 기간 동안 테이블 잠금을 획득하여 현재 쿼리가 완료될 때까지 다른 쿼리가 테이블에 액세스하지 못하도록 합니다. 이를 테이블 수준 잠금이라고 합니다.

 

2. 예, 가능합니다. 적절한 동기화 없이 테이블에 대한 동시 액세스는 불일치 및 잘못된 데이터 업데이트를 초래할 수 있습니다.

 

3. 아니요, PHP 코드 실행과 테이블 액세스는 직접적인 관계가 없습니다. 동일한 테이블에 대한 동시 액세스 문제는 잠금 또는 트랜잭션과 같은 적절한 동기화 메커니즘을 구현하여 데이터베이스 수준에서만 해결할 수 있습니다.

 

4. 예, 트랜잭션을 사용하면 동일한 테이블에 대한 동시 액세스 문제를 해결하는 데 도움이 될 수 있습니다. 트랜잭션을 사용하면 여러 쿼리를 단일 작업 단위로 실행할 수 있으므로 모든 변경 사항을 커밋하거나 오류 발생 시 롤백하여 데이터 무결성과 일관성을 보장할 수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,532 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT