DataBase/Maria DB

[DB] MariaDB DeadLock 문제 해결

Trillion Binary 2023. 2. 17. 08:48
SMALL

MariaDB를 사용하다 보면 쓰기작업으로 인해 DeadLock이 발생할 경우가 있다.

Deadlock found when trying to get lock; try restarting transaction


1. DeadLock 분석 쿼리

# 현재 LOCK이 걸려 대기중인 정보
SELECT * FROM information_schema.INNODB_LOCK_WAITS;

# LOCK을 건 정보
SELECT * FROM information_schema.INNODB_LOCKS;

# LOCK을 걸고 있는 프로세스 정보
SELECT * FROM information_schema.INNODB_TRX;

# InnoDB 상태
SHOW ENGINE INNODB STATUS;

2. DeadLock 해결 팁

- 테이블 접근 순서 정하기
- 트랜잭션 내에서 특정 테이블에 대하여 한번만 접근
- Insert를 묶기
- 다수의 데이터를 Update or Delete 하지 않기
- start transaction 후 꼭 commit, rollback을 해서 누수 발생하지 않도록 하기

BIG