결론
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번씩 값을 메타데이터를 반영한다고 한다.
참고
'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 |