15.6 공간 데이터 타입
- 모든 GEOMETRY 타입과 그 자식 타입은 BLOB 객체로 관리
- JDBC 표준에서 공간 데이터를 공식적으로 지원하고 있지 않음 (ORM 은 JTS 같은 라이브러리를 이용)
15.7 JSON 타입
- 5.7 부터 시작, 8.0 에서 많은 업그레이드가 있었음
- Binary JSON (BSON) 형태로 변환해서 저장
- utf8mb4_bin 콜레이션
- 마무리는 mysql 에서는 정규화된 칼럼을 추천?
저장 방식
- BSON 형태라 TEXT, BLOB 보단 저장 공간 효율이 높은편 (https://bsonspec.org/)
- 16KB 단위로 여러개 데이터 페이지로 나뉘어 저장됨
- BSON은 내부적으로 BLOB 타입을 사용함
- 5.7까진 BLOB이 Linked List 처럼 관리 되었지만, 8.0 부터 페이지들이 인덱스로 관리되도록 개선
부분 업데이트 성능
- 8.0 부터 Partial Update 기능 제공
- 기존 보다 사이즈가 작은 값으로 바뀌면 재할당을 하는게 아닌 공간으로 그대로 두고 FREE size 가 남게 됨
- 큰 값으로 바꾸면 재할당 → 부분 업데이트가 아님
- 고로 특정 조건에서 빠른 업데이트 성능