NoSQL이 항상 빠른 것은 아니라는 전제에서 출발해, LSM 트리의 쓰기 경로, Elasticsearch의 역색인과 세그먼트, MySQL 전문검색과의 차이, HDD·SSD I/O 패턴까지 원래 구조를 유지해 정리합니다.
InnoDB에서 일반 SELECT와 locking read가 어떻게 다르게 동작하는지, REPEATABLE READ와 READ COMMITTED의 차이, phantom과 next-key lock, undo/redo의 역할을 한 번에 정리합니다.
클러스터드 인덱스, 보조 인덱스, undo/redo, REPEATABLE READ, READ COMMITTED, MyISAM 차이, wait_timeout, DB 세션과 커넥션 풀까지 한 번에 훑는 MySQL 정리 노트입니다.
드라이빙 테이블과 드리븐 테이블 개념이 특히 Nested Loop Join에서 왜 중요한지, EXPLAIN으로 어떻게 읽고 DBMS별로 어디까지 제어할 수 있는지 정리합니다.
InnoDB에서 테이블이 디스크에 어떻게 저장되는지 — File, Segment, Extent, Page, Row 각 계층의 역할과 크기를 정리합니다.
JDBC API 개요, DataSource 설정, JdbcTemplate 사용법, @Transactional 트랜잭션 관리와 전파 속성까지 정리합니다.
MySQL FullText Search의 한계를 분석하고 Elasticsearch를 도입하여 검색 API 성능을 개선한 과정을 정리합니다.
MySQL 전문 검색 API의 응답 시간을 6.85초에서 84ms로, Left Join을 Subquery로 변경하여 약 30배 향상한 과정을 정리합니다.
macOS에서 MySQL을 실행할 때 brew services와 mysql.server가 어떻게 다른지, 어떤 상황에서 무엇을 쓰면 되는지 정리합니다.