멀티 밸류 인덱스

공부하는 감자·2024년 3월 9일
0

MySQL

목록 보기
15/74
post-thumbnail

멀티 밸류 인덱스

  • 전문 검색 인덱스를 제외한 모든 인덱스는, 인덱스 키와 데이터 레코드가 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

profile
책을 읽거나 강의를 들으며 공부한 내용을 정리합니다. 가끔 개발하는데 있었던 이슈도 올립니다.

0개의 댓글