본문 바로가기
개발/SQL

Update 쿼리 시 주의사항

by 혈중마라농도 2022. 11. 3.

Update 쿼리 시 주의해야할 점이 있다.

Update, Delete, Insert 쿼리는 Exclusive Lock 이 걸리는 쿼리라고 알고 있을 것이다.

Exclusive Lock은 테이블 row에 걸리는 락이고, 읽기&쓰기가 모두 락이 걸린다.

하지만, update 쿼리 시 Where 절이 들어가는 쿼리는 해당 Where절에 인덱싱이 사용되는지 안되는지에 따라서 동작은 바뀐다.

인덱싱이 걸려있는 쿼리는 해당 row에만 락이 걸리고,

인덱싱이 걸려있지 않은 쿼리는 테이블 락이 걸린다.

2개의 차이는 데이터 양이 많아질 경우에 문제가 발생하는데, 데이터 양이 많아지면, 당연히 데드락이 발생할 가능성이 있으므로 문제가 있다.

따라서 인덱싱을 잘 설정해줘야 한다.

반응형

댓글