본문 바로가기

CS/DB

mysql INFORMATION_SCHEMA 업데이트 속도

 

결론

MySQL 8.0 부터 INFORMATION_SCHEMA의 변경 정보는 24시간에 1번 반영된다. 

 

상황

mysql AUTO_INCREMENT 관련 문서에서 sql문을 테스트하던 중 INFORMATION_SCHEMA의 auto_increment 값이 바뀌지 않았다. 

ALTER TABLE '테이블A' AUTO_INCREMENT = 1;

위와 같이 변경 후 INFORMATION_SCHEMA에서 조회해보니 AUTO_INCREMENT값이 변경되지 않았다. 

하지만 '테이블A'에 값을 넣으면 변경된 auto_increment 값이 들어가는 것을 확인할 수 있었다. 

이유는 INFORMATION_SCHEMA의 업데이트 속도는 24시간에 1번 반영된다는 것을 알게 되었다. 

 

왜 INFORMATION_SCHEMA 데이터를 늦게 반영할까 

InnoDB 엔진의 메타데이터 쿼리는 메모리에 저장된다. ALTER TABLE~ 쿼리 또한 메모리에 저장된다. 

매 쿼리 호출마다 메타데이터가 메모리를 쓰게되면 성능이 떨어지게 된다. 

그래서 디비 서버의 부하를 줄이고자 24시간에 1번씩 값을 메타데이터를 반영한다고 한다. 

 

 

 

참고

https://stackoverflow.com/questions/65996700/problem-with-auto-increment-value-in-table-schema-not-updating 

https://stackoverflow.com/questions/53855219/mysql-not-updating-information-schema-unless-i-manually-run-analyze-table-myta

 

'CS > DB' 카테고리의 다른 글

InnoDB의 Buffer Pool, MVCC  (0) 2024.11.18
MySQL) 타입 DateTime 과 Timestamp 중 어떤걸 쓸까  (0) 2023.09.28
MySQL auto_increment와 innodb_autoinc_lock_mode  (0) 2023.06.12
like 절 주의할 점  (0) 2022.07.22
맥 mysql 설치 및 실행  (0) 2022.07.22