컬럼에 대한 검색 최적화 구조
인덱스 방식은 데이터베이스에서 사용하는 방식이다.
주어진 데이터 항목에 해당하는 위치를 기록하는 것이다.
ex) 책에서 단어를 나열하고, 각 단어가 등장한 페이지 번호를 기록한 것이 인덱스 방식이다.
- 역 인덱스와 다르게, "위치 정보" 까지 저장하여 세밀하게 추적하는 방식이다.
문서의 내용이 길어질수록, 검색해야 할 데이터가 매우 많아지기 때문에 인덱스 방식은 비효율적일 수 있다.
텍스트 검색 최적화 구조
문서 구조를 반대로 뒤집어서 문서들에 단어가 어디서 나오는지 빠르게 찾을 수 있도록 하는 방식이다.
apple 와 banana라는 단어가 포함된 문서들을 검색한다고 하자
문서1: "apple orange banana"
문서2: "apple grape"
문서3: "banana grape apple"
인덱스 방식은 컬럼 검색 최적화 방식 이기 때문에 인덱스 방식을 통해 apple와 banana가 모두 포함된 문서를 검색하고자 한다면,
모든 문서 들을 돌아다니면서 해당 조건을 만족하는 문서를 반환해야 할 것이다.
무척 비효율적이다.
역인덱스 방식은 텍스트 검색 최적화 방식
역 인덱스를 통해 저장된 테이블을 보면
| 단어 | 문서ID |
|---|---|
| apple | 1,2,3 |
| banana | 1,3 |
| orange | 1 |
| grape | 2,3 |
이렇게 저장이 되어 있을 것이다.
apple, banana를 바로 검색하여 공통으로 들어있는 문서ID 1,3을 찾아낼 수 있다.