본문 바로가기

MySQL2

데드락: 당황하지 말고 줄을 서시오 시작하며;아무 소리가 없던 채널에서 연달아 로그가 쏟아졌다. 심쿵했다. 로그 내용은 아래와 같다. 내용은 MySQL 에서 트랜잭션을 실행하는 도중, 두 개 이상의 트랜잭션이 서로의 리소스를 기다리며 교착 상태가 (Deadlock) 발생했을 때 MySQL 이 이를 해결하기 위해 한 트랜잭션을 강제로 롤백하면서 발생하는 에러라고 한다.Deadlock found when trying to get lock; try restarting transactionDeadlock 이란 무엇인가;MySQL 은 데이터를 변경하거나 조회할 때, 다른 작업과 충돌하지 않도록 잠금을 건다. 예를 들어, 테이블 A의 데이터를 변경 중이라면, MySQL 은 해당 데이터를 다른 트랜잭션이 접근하지 못하도록 잠금을 걸게 된다. 하지만 작.. 2025. 1. 7.
[MySQL] 서브 쿼리 요즘 이직한 회사에서 부쩍 서브 쿼리를 꽤 많이 접하고 있습니다.새로운 기능을 개발하는 것 말고도 기존 api 로직을 새로운 버전으로 migration 하는 작업도 진행하고 있는데 기존 쿼리문에 서브 쿼리가 꽤 있습니다.코드 리뷰를 받을 때 "서브 쿼리를 가능하면 조인 문으로 대체"하라고 피드백을 받았는데요.그렇다면- 서브 쿼리가 무엇인지- MySql 에서 실행 계획을 직접 보면서 조인문으로 가능하면 대체하는 이유가 무엇인지 제 나름대로 글을 적어보면서 정리해볼까 합니다.1. 서브 쿼리란?간단하게 정리하면 SELECT 문 안에 또다시 SELECT문이 있는 쿼리문을 의미합니다. 아래처럼 더 나눌 수 있습니다.Inline View : FROM절에 사용하는 인라인Scala Subquery : SELECT문에 .. 2021. 6. 22.