일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- java
- 코딩봉사
- 백준알고리즘
- 백준 알고리즘
- MYSQL
- 백준
- kotlin
- CJ UNIT
- 코딩교육봉사
- programmers
- 공부일지
- C++
- 회고
- 코틀린
- BFS
- 알고리즘
- softeer
- 데이터베이스
- 정보처리산업기사
- 자바
- python
- 1과목
- 스프링
- 문제풀이
- 소프티어
- SQL
- 파이썬
- 프로그래머스
- SW봉사
- 시나공
- Today
- Total
목록인덱스 (2)
JIE0025

✅ 왜 인덱스는 B-TREE, B+TREE 자료구조를 채택했을까? 인덱스 구현을 위해선 대표적으로 해시테이블과 비트리가 존재한다. ⏺ 해시테이블 해시테이블은 Key value를 저장하는 데이터 구조로, 빠른 데이터 검색을 할때 유용하다. 따라서 해시테이블 기반의 DB인덱스는 컬럼의 값으로 생성된 해시를 통해 인덱스를 구현한다. 검색 속도도 해시테이블의 Key를 찾는 속도인 O(1)이다. 그러나 DB의 인덱스에서는 해시테이블을 사용하는 경우가 제한적이다. WHY? equal = 연산에만 특화되었기 떄문이다. 해시함수는 값이 1개라도 달라지면 다른 해시값을 생성하기 때문에 범위 검색 (> ⌈M2⌉⌈�2⌉, 최대 M�개의 서브 트리를 갖는다. 6. 모든 leaf node들은 같은 level에 있어야 한다. ⏺..

✅ 목적 특정 키워드를 검색하기 위해 DB에 데이터를 조회하게 되면 LIKE %keyword% 이런식으로 접근하는데.... 게시물 본문과 같은 경우 글이 너무 많은 경우 그 안에서 키워드를 찾기란 쉽지 않다. 이런 경우에 검색 성능을 높이기 위해 고려할 수 있는것들이 존재한다. 쿼리 최적화와 더불어 인덱싱을 사용함으로써 성능개선에 도전해보게 되었다. ✅ 어떤 상황이었는가? (이전 설계의 상태 : ERD와 MySQL) 게시글(BulletinPost)와 장소(Amenity)는 뗄레야 뗄 수 없는 관계이다. ⏺ ERD BulletinPost와 Amenity는 다음과 같은 관계이다. 게시글 1개는 장소 1개를 가질수 있다. 장소 1개는 게시글 N개에 태그될 수 있다. ⏺ 요청 해당 API가 사용되기까지 과정은..