강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dfdssdsd
dfdssdsd

câu hỏi đã được viết

Tối ưu hóa hiệu suất MySQL

Lý thuyết

innodb deadlock detect 비활성화 질문

Đã giải quyết

Viết

·

368

·

Đã chỉnh sửa

0

https://fromdual.com/innodb-deadlock-detect-rather-hands-off

요 글을 보면 페이스북과 같은 엄청난 동시성 트랜잭션을 처리하는 서버가 아닌이상 웬만하면 innodb_deadlock_detect=on으로 하는걸 권장하는 글로 보입니다.

 

  1. 국내 기업 한정에서 실무에선 off로 하는 경우가 있을까요? 제 생각엔 lock으로 인한 성능상 문제가 있다면 off로 하는 것 보단 아키텍처 관점(레디스 사용 등)에서 성능 문제를 해결하는게 더 좋을것 같아서요..!

 

  1. 저 글과 같이 off로 했을 경우 스레드의 잠금이 계속해서 쌓여서 어느순간 max_connections을 초과하게 되었다는데.. off로 할 경우 innodb_lock_wait_timeout을 줄이고 max_connections을 높여 가면서 성능 테스트를 해서 적절한 값을 세팅하는 것이 좋을까요? off로 했을 경우 성능상 큰 이점이 있는 건지 감이 잘 오지 않습니다 ㅠ

 

  1. 강의 자료 노션에는 practice가 있는데 영상은 없네요 ㅠㅠ 의도하신 건지 궁금합니다아

 

mysqldbms/rdbmsdeadlockinnodb

Câu trả lời 1

1

yjm9505168574님의 프로필 이미지
yjm9505168574
Người chia sẻ kiến thức

안녕하세요~ 질문 남겨주셔서 감사합니다.

 

맞아요. 말씀 주신 내용처럼 매우 높은 동시성을 요구하는 환경이 아니라면 굳이 innodb_deadlock_detect=on 을 할 필요는 없습니다.

 

대부분의 국내 환경도 트래픽이 높지는 않아서 마찬가지일거에요. 대안 방법의 예시로 Redis 를 드셨는데 만약 Update 와 Insert 트래픽이 엄청 많은 상황에서는 고려해볼 수 있는 설정일거에요.

 

2번 질문 같은 경우는 innodb_deadlock_detect=off 로 했을 경우에 데드락 상황이 발생했을 때 감지할 수 있는 방법이 없으니 innodb_lock_wait_timeout 값을 짧게 줘서 성능 테스트를 해야할 것 같아요. 그리고 필요하다면 max_connections 값도 같이 증가시키는 게 좋을 수 있을 것 같습니다. 근데 이건 단순히 임시적인 조취일 수 있으니 문제가 일어났을 때 근본적인 해결을 찾는게 무엇보다 중요할 것 같네요.

 

원래는 dead_lock detect 상황을 실습해보려고 했는데 제 생각보다 더 많은 트래픽이 필요하더라구요. 그래서 로컬 환경에서는 진행하기가 어려웠어서 실습을 제외했습니다...

Hình ảnh hồ sơ của dfdssdsd
dfdssdsd

câu hỏi đã được viết

Đặt câu hỏi