백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. 멀티 밸류 인덱스
- 하나의 데이터 레코드가 여러 개의 키 값을 가질 수 있는 형태의 인덱스
- JSON 배열과 같은 비정형 데이터에서 원소별 인덱싱이 필요할 때 사용됨
특징
인덱스 내에서 하나의 레코드가 여러 개의 엔트리를 가질 수 있음
- JSON 필드에 저장된 배열 원소들에 대한 인덱싱을 위해 설계됨
- 배열을 가진 모든 레코드에 대해 다수의 인덱스 엔트리가 생성되므로, 인덱스 크기가 커질 수 있음
예시
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
items JSON,
INDEX idx_items ((CAST(items->'$[*]' AS UNSIGNED ARRAY)))
);
반드시 함수들을 이용해서 검색해야 옵티마이저가 인덱스를 활용한 실행 계획을 수립함
SELECT * FROM orders WHERE JSON_CONTAINS(items, '3', '$');
- 일반적인 LIKE 쿼리는 인덱스를 활용하지 않음
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 16-1. 복제: 아키텍처 (4) | 2024.09.07 |
---|---|
[Real MySQL] 8-1. 인덱스: Disk (0) | 2024.09.07 |
[Real MySQL] 8-6. 인덱스: 함수 기반 인덱스 (0) | 2024.09.07 |
[Real MySQL] 8-8. 인덱스: 클러스터링 인덱스 (0) | 2024.09.07 |
[Real MySQL] 8-9. 인덱스: 유니크 인덱스 (0) | 2024.09.07 |