http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
공지사항  
뉴스  
질문과 답변
DBA
Developer
Cluster
토크박스  
이벤트  
서포트 티켓  
최신글
foreign key 설정…
인텍스 추가 등에…
mysql master - s…
다대다 관계에서 …
mysql my파일과 …
 
질문과 답변 (Cluster) > 커뮤니티 존 > 질문과 답변 (Cluster)
mysql cluster에서의 lock?
글쓴이 : dbalee   날짜 : 08-03-10 15:51   조회수 : 7604
안녕하세요.

Mysql Cluster 5.1.23.rc 버전을 사용하고 있습니다.
먼저, 트랙잭션을 걸지 않고, 단순히 아래의 쿼리를 실행했습니다.
이 쿼리가 좀 시간이 많이 걸립니다.
SELECT t.id, s.id FROM t, s
WHERE t.obj_id = s.obj_id AND
login = 'test@test.com';

위의 쿼리의 결과가 돌아오지 않는 상태에서, 아래의 쿼리를 실행했습니다.
update t set status=5 where obj_id=33333;
 
그러면, 바로 이 update쿼리를 lock이 되어 버립니다.
show processlist결과는 다음과 같습니다.
mysql> show processlist;
| 663 | user1 | host-10.10.internal:2841 | test | Query | 35 | Sending data | SELECT t.id, s.id FROM t, s WHERE t.obj_id = s.obj_id AND login = 'test@test.com'; |
| 664 | user2 | host-10.10.internal:2842 | test | Query | 5 | Locked | update t set status=5 where obj_id=33333; |
 

왜 select쿼리에 의해 lock이 발생하는 것일까요?



this is normal operation of mysql cluster???
정진삼
클러스터라고 해서 innodb transaction과 큰 차이가 있는 건 아닙니다.
거의 같다고 보시면 될 듯하네요.
그럼 select시 update 락이 걸리는 것은 자연스러운 현상이 아닐까 싶습니다.
누군가 데이터를 조회를 하고 있는데 그 데이터가 갑자기 또다른 사람에 의해서 업데이트가 되어 버린다면
신뢰할 수가 없겠죠.

transaction 레벨에 대한 자료를 한 찾아보시면 도움이 되실듯 합니다.

그럼
이전글 에러 문의 드립니다. 
다음글 오라클 RAC와 mysql클러스터가 같은 건가요? 
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
Copyright ⓒ ssebiz All Rights Reserved.