Mysql 기반 RDB의 파티션 관리 방법
Rdbms의 테이블 사이즈가 커지면서 성능 문제를 맞딱뜨릴때 고려하게 되는 요소 중 하나가 파티션드 테이블인데요, 파티션드 테이블은 본질적으로 여러 개의 테이블을 사용하는 거라고 하니, 적용하기 전에 읽어볼만한 글을 공유합니다. Mysql에서 파생된 Mariadb의 공식 문서라 큰 흐름은 대부분 적용됩니다. 파티셔닝에 대한 저자의 의견도 mysql rule of thumb에서 가져왔다고 하고요. 글에서는 이런 내용을 다룹니다. * PARTITION을 사용해야 할 때와 아닐 때 * 시계열 PARTITIONed 테이블을 유지하는 방법 * AUTO_INCREMENT 비밀 —- PARTITIONing이 성능 문제를 해결할 것이라고 믿고 싶은 유혹이 큽니다. 하지만 너무 자주 틀립니다. PARTITIONing은 하나의 테이블을 여러 개의 작은 테이블로 분할합니다. 그러나 테이블 크기는 거의 성능 문제가 아닙니다. 대신 I/O 시간과 인덱스가 문제입니다. AUTO_INCREMENT in PARTITION Examples (where id is AUTO_INCREMENT): PRIMARY KEY (...), INDEX(id) PRIMARY KEY (...), UNIQUE(id, partition_key) -- 유용하지 않음 INDEX(id), INDEX(...) (but no UNIQUE keys) PRIMARY KEY(id), ... -- id가 파티션키일 때만 동작 (그리 유용하지 않음 )