Study/Real-MySQL
8.7 멀티 밸류 인덱스
hongeeii
2024. 1. 5. 16:51
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()
select * from user2
where 360 member of(credit_info -> '$.credit_scores');
explain
select * from user2
where 360 member of(credit_info -> '$.credit_scores');
728x90
반응형