38장. InnoDB Transaction을 Lock과 Undo로 읽는다
긴 transaction은 row lock뿐 아니라 undo 보존과 purge 지연을 만든다. performance_schema와 information_schema.innodb_trx에서 시작 시각, state, thread, query를 연결한다. idle connection과 idle in transaction을 구분하고 application pool의 auto-commit·rollback 경계를 확인한다. history list length 하나를 절대 임계치로 쓰지 않고 workload와 증가 속도를 본다.
실습은 reader를 연 채 update를 반복해 undo·purge, disk와 query 영향을 관찰한다. transaction을 끝낸 뒤 회복 시간을 잰다. 강제 kill은 commit unknown과 application retry 중복을 먼저 검토한다. timeout을 늘려 문제를 숨기지 않는다.