•
데이터 압축, 데이터 암호화 모두 mysql에서 메인이 되는 내용은 아닌 것 같아 쉬어가는 느낌의 챕터였던 것 같다.
데이터 압축에서 '데이터 페이지'라는 개념이 계속 언급되는데 이게 뭘까요
•
페이지 == 블록
•
디스크의 모든 읽기 및 쓰기 작업의 최소 작업 단위
•
InnoDB 스토리지 엔진의 버퍼 풀에서 데이터를 버퍼링하는 기본 단위라고 한다.
(185p, 페이지 압축) 압축한 결과의 용량은 예측할 수 없다 ⇒ 적어도 하나의 테이블은 동일한 크기의 페이지(블록)으로 통일되어야 한다? 왜?
•
(책에 나온 바로는) 특정 테이블에 대해 일정한 크기의 페이지를 유지하면서 데이터를 저장할 때 공간 낭비를 최소화할 수 있다
•
페이지 크기가 다르다면? → 페이지를 읽고 쓸 때 또다른 페이지의 크기에 대해 처리해야 하는 작업이 생길 수 있다
동일하다면? → I/O 성능이 나아진다
•
캐싱: 메모리에 캐시되는 데이터도 페이지 단위로 관리되는데, 페이지 크기가 일정하면 마찬가지로 페이지의 크기에 대한 작업은 하지 않아도 될 것
•
인덱스: 인덱스도 페이지 단위로 관리해야하기 때문에 크기에 대한 작업을 생략해도 될 것
⇒ 크기에 대한 작업을 생략할 수 있기 때문에 동일한 크기의 페이지로 통일되어야 한다
(테이블 압축) 압축된 페이지의 타깃 크기를 명시(지정)할 수 있는 것 같은데 왜 2n으로만 설정이 가능한지…? 굳이?
(테이블 압축) 왜 목표 크기가 mysql 처리 성능에 영향을 주게 되나…? 읽기 성능에 영향을 준다는건지 쓰기 성능에 영향을 준다는건지?