Study/Real-MySQL

8.7 멀티 밸류 인덱스

hongeeii 2024. 1. 5.
728x90
반응형

8.7 멀티 밸류 인덱스

전문 검색 인덱스를 제외한 모든 인덱스는 레코드 1건이 1개의 인덱스 키값을 가진다.

하지만 멀티 벨류 인덱스는 하나의 데이터 레코드가 여러개의 키 값을 가질 수 있는 형태의 인덱스이다.

원래는 이런 인덱스는 정규화에 위배되는 형태임.

=> 최근 RDBMS들이 JSON 데이터 타입을 지원하기 시작

=> JOSN의 배열 타입의 필드에 저장된 원소들에 대한 인덱스 요건이 발생

=> 그래서 만듬

create table user2(
    user_id bigint auto_increment primary key,
    first_name varchar(10),
    last_name varchar(10),
    credit_info json,
    index mx_creditscores ( (cast(credit_info -> '$.credit_scores' as unsigned array)) )
);

insert into user2 values(1, 'Matt', 'Lee', '{"credit_scores" : [360, 353, 351]}');

멀티 밸류 인덱스를 활용하려면 반드시 다음의 함수를 이용해서 검색해야함.

  • member of()
  • json_contains()
  • json_overlaps()

JSON 데이터 사용 참고

select * from user2
where 360 member of(credit_info -> '$.credit_scores');

explain
select * from user2
where 360 member of(credit_info -> '$.credit_scores');

image

image

728x90
반응형

'Study > Real-MySQL' 카테고리의 다른 글

8.9 유니크 인덱스  (0) 2024.01.05
8.8 클러스터링 인덱스  (1) 2024.01.05
8.6 함수 기반 인덱스  (0) 2024.01.05
8.5 전문 검색 인덱스  (0) 2024.01.05
8.4 R-Tree 인덱스  (0) 2024.01.05

추천 글