MySQL Architecture InnoDB 스토리지 엔진 복습 지금까지 InnoDB 스토리지 엔진을 사용하면서, Index는 In-Memory 구조에 생성되고, Table Data는 On-Disk 구조에 생성되는 줄 알았는데, 잘 못 알고 있었다. Table의 Data와 Index는 모두 InnoDB 스토리지 엔진 On-Disk 구조의 Tablespace에 생성된다는 것을 알게 되었으며, 조금 더 자세하게는 File-Per-Table Tablespace에 단일 파일(.ibd 파일)에 Table Data와 Index가 생성된다. 정리한 내용 https://github.com/bestdevhyo1225/dev-log/blob/master/MySQL/MySQL-Architecture-InnoDB-OnDis..
MySQL 쿼리 사용 시, IN절 최적화 MySQL 쿼리 사용 시, IN절을 자주 사용하는 편이다. 지금까지 알고 있었던 내용으로 IN절은 최대 1,000개까지 사용해도 성능에 크게 문제가 없을 줄 알았다. 그런데 1,000개를 사용해도 MySQL 옵션에 따른 옵티마이저의 실행 계획에 따라 성능이 좋지 않을 수도 있다는 것을 알게 되었다. 상황에 따라 1,000개까지 사용하고 싶다면, IN절의 개수를 조금씩 늘려가면서 성능 테스트를 진행해야 한다는 것도 추가로 알게 되었다. 주요 키워드 Index Range Scan, index dive Index Range Scan, index statistics MySQL의 eq_range_index_dive_limit 옵션 MySQL의 range_optimizer_..
Hibernate 구현체에서 Auto Commit 최적화 방법 Hibernate 사용하면서, 서비스 상황에 따라 Auto Commit 상태를 최적화하는 방법에 대해서 공부했고, Hibernate 구현체는 Database Connection Pool의 Auto Commit 설정 상태를 신뢰하지 않는다는 것을 알게 되었다. 정리한 내용 https://github.com/bestdevhyo1225/dev-log/blob/master/JPA/Hibernate_AutoCommit.md GitHub - bestdevhyo1225/dev-log: :memo: Record :memo: Record. Contribute to bestdevhyo1225/dev-log development by creating an acc..