potato.log
로그인
potato.log
로그인
멀티 밸류 인덱스
공부하는 감자
·
2024년 3월 9일
팔로우
0
mysql
0
MySQL
목록 보기
15/74
멀티 밸류 인덱스
전문 검색 인덱스를 제외한 모든 인덱스는, 인덱스 키와 데이터 레코드가 1:1 관계를 가진다.
멀티 밸류(Multi-Value) 인덱스는 하나의 데이터 레코드가 여러 개의 키 값을 가질 수 있는 형태의 인덱스다.
일반적인 RDBMS를 기준으로 생각하면 이러한 인덱스는 정규화에 위배되는 형태다.
하지만 최근 RDBMS들이 JSON 데이터 타입을 지원하기 시작하면서 JSON 배열 타입의 필드에 저장된 원소(Element)들에 대한 인덱스 요건이 발생한 것이다.
JSON 포맷으로 데이터를 저장하는 MongoDB는 처음부터 이런 형태의 인덱스를 지원했다.
멀티 밸류 인덱스 활용
멀티 밸류 인덱스를 활용하기 위해서는 일반적인 조건 방식을 사용하면 안 된다.
반드시 다음 함수들을 이용해서 검색해야 옵티마이저가 인덱스를 활용한 실행 계획을 수립한다.
MEMBER OF()
JSON_CONTAINS()
JSON_OVERLAPS()
멀티 밸류 인덱스 지원 타입
MySQL 서버의 Worklog에는 다음 타입들에 대해 멀티 밸류 인덱스를 지원한다고 명시되어 있다.
DECIMAL
INTEGER
DATETIME
VARCHAR/CHAR
MySQL 8.0.21 버전에서는 VARCHAR/CHAR 타입에 대해 지원하지 않는다.
곧 VARCHAR/CHAR 타입의 배열 형태 CAST와 멀티 밸류 인덱스가 지원될 것으로 예상한다.
Reference
참고 서적
📔
Real MySQL 8.0
공부하는 감자
책을 읽거나 강의를 들으며 공부한 내용을 정리합니다. 가끔 개발하는데 있었던 이슈도 올립니다.
팔로우
이전 포스트
함수 기반 인덱스
다음 포스트
클러스터링 인덱스
0개의 댓글
댓글 작성