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
'DataBase > Maria DB' 카테고리의 다른 글
[DB] MariaDB MaxScale을 통한 분산처리 (1) | 2023.02.13 |
---|---|
[DB/AWS] MariaDB Mariabackup 복원하기 (0) | 2023.02.09 |
[DB/AWS] MariaDB Mariabackup을 이용한 백업 스케쥴 설정 2 (0) | 2023.02.09 |
[DB/AWS] MariaDB Mariabackup을 이용한 백업 스케쥴 설정 (0) | 2023.02.09 |
[DB] Database Lock? (0) | 2023.02.08 |