-
[CS/Database] Elastic Search / Elastic Search의 인덱스구조와 RDBMS의 인덱스 구조의 차이 / Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이CS/데이터베이스 2025. 2. 21. 17:14반응형
• Elastic Search란?
- Elastic Search는 자바로 개발된 오픈소스 검색엔진입니다. 보통 단독으로 사용하기보다는 ELK 스택이라고 불리는 Logstash, Kibana, Beats를 추가적으로 사용합니다.
- Inverted Index 구조(역인덱스 구조)로 데이터를 저장해서, 전문(Full-text) 검색시에 RDBMS에 비해 뛰어난 성능을 보장합니다.
- 데이터 저장, 문서 검색, 위치 검색, 머신 러닝 기반 검색, 로그 분석, 보안 감사 분석 등 다양한 용도로 사용할 수 있습니다.
• Elastic Search의 인덱스 구조와 RDBMS 인덱스 구조의 차이
- Elastic Search는 Inverted-Index 구조로 데이터를 저장합니다. 이는 책의 색인을 생각해보면 쉬운데, 특정 단어가 출현하는 doc을 저장하는 것입니다.
- 반면 RDBMS는 B-Tree와 그와 유사한 인덱스를 사용합니다.
- 데이터가 어디에 존재하는지, 어떤 순서로 저장하는 지의 차이라고 생각합니다. RDBMS에도 다양한 인덱스 구조가 있으나 여기서 예로 든것은 B-Tree 인덱스입니다.
• Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이
- Elastic Search는 키워드 검색에 최적화되어 있고, 유사한 문서를 랭킹 순으로 빠르게 정렬하여 반환합니다.
- RDBMS의 LIKE 검색은 단순 문자열 포함 여부만 확인하여, 특정 패턴(ex) 고양이%) 에 대해서만 인덱스를 사용할 수 있습니다.
- 대량의 텍스트 검색이 필요하다면 Elastic Search가 필수입니다.
RDBMS의 LIKE 검색 인덱스 사용 예시
* 위 글은 아래 문서를 참고해 작성했습니다.
https://github.com/ksundong/backend-interview-question
GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질
백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, 인터넷 참고한 질문(CC BY-NC) - ksundong/backend-interview-question
github.com
review 1회독 2회독 3회독 4회독 5회독 check ✅(2/24) 반응형'CS > 데이터베이스' 카테고리의 다른 글
[CS/Database] Redis / Redis와 Memcached 차이 (1) 2025.02.17 [CS/Database] NoSQL / RDBMS와 NoSQL의 차이 (0) 2025.02.17 [CS/Database] 트랜잭션 / ACID / 트랜잭션 격리수준(Transaction Isolation Levels) (0) 2025.02.17 [CS/Database] 정규화 (0) 2024.10.28 [CS/Database] 인덱스 (0) 2024.10.28