안녕하세요 현우님
오늘 게시판을 보다가 일전에 질문드린
Query explan에 대해서 문의 드립니다. 에서 원인문제에 대해서 말씀 주셨는데요
지금 생각해보니 꼭 집고 넘어가야할듯해서 다시한번 여쭙니다.
당시 날린 delete query는 지극히 심플한 query 였습니다.
delete from TableName where A in ('1','2')
이런 포멧이였지요 헌데 이 쿼리로 인해서 mysql로 쿼리를 보내는 중계 서버가 내려가는(?) 최악의 상황에 도달했습니다.
궁금한것은 MyISAM 테이블은 기본적으로 '비트랜젝션' 엔진으로 알고있습니다.
(한번 쓰여지면 끝인거죵 ;;; 덜덜 ;;)
다른 DB들도 그렇겠지만 이처럼 MyISAM 테이블은 트랜젝션 쿼리(정확한 명칭인지 알수없으나, delete, insert 같은 테이블 변경을 가하는 쿼리)가 들어오면
자동으로 lock이 생기는 지요?
또한 innodb역시 auto commit을 설정할 수 잇는것으로 아는데 이또한 같은 이론에 적용이 되나요?
흠.. 너무 원론 적인 문제여서... 답변이 달릴지는 모르겠네요 ㅋ~
ps.. 또한가지 DB를 보니 상당힌 난해한게하나 있습니다.
현재 mysql 버전이 4.1.22 입니다.
1. select A from TableName where A in ('1','2')
2. select A from TableName where A in (select B from TableName where C='Text')
이 두가의 쿼리가 동일한 데이터를 검출한하고 할때 속도 차이가 너무심합니다.
대략 몇분의 차이를 보이는데요
과연 어떤부부이 잘못되어서 그런가요?
(* ㅎㅎㅎ..질문을 하고도 나서 보니 아무런 언급없이 이딴 질문을 하니 제가봐도 답답하네요 ㅋㅋ)
그럼 다들 좋은 하루 되시길...
|