Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 비전공개발자
- AOP
- PM
- 이슈관리
- 스프링
- 검색
- elasticsearch
- 웹프론트
- spring
- java
- 자바
- 개발자
- 레드마인
- 프론트엔드
- PreparedStatement
- 오라클
- Database
- 엘라스틱서치
- db
- 백엔드
- spring aop
- kibana
- 데이터베이스
- 프로젝트관리
- 일감관리
- redmine
- Si
- frontend
- 인덱스
- It
Archives
- Today
- Total
리타의 저장소
인덱스와 조인 #1 본문

덱스는 알아도 인덱스는 잘 몰르는디,,
처음 운영 데이터를 만지면서 가장 중요한 것 중 하나는 바로 '인덱스' 였다.
종종 정산데이터를 업로드 한다거나,
대량데이터를 업데이트 해줘야 하는 일들이 발생하곤 했는데,
그럴 때마다 내가 짠 쿼리는 참 오래 걸렸다.
차장님한테 여쭤보니, 인덱스는 만들었냐고 물으셨다.
그렇구나 인덱스가 필요하구나 !

인덱스
- KEY + VALUE
인덱스의 탐색
- 수직적 탐색 시작점 검색 Random Access
- ROOT : 최상위 노드 BRANCH : ROOT & LEAF 의 연결고리 LEAF : KEY + Rowid (블록주소) > leaf node는 정렬되어 있음
- Root > Branch > Leaf
- 수평적 스캔Sequential Access
- Leaf Block의 시작점 ~ 종료점 까지
- 테이블 Random Access
- 데이터 블록을 읽는 케이스
- 결과가 10% 미만인 경우, 10% 이상인 경우 어떻게 읽는게 좋은가 ?10%이상 == Full Scan
- (그렇다고 항상 그런것은 아님, 일반적으로 그렇다)
- 10%미만 == Index Scan
Random Access vs Sequential Access
sequentialrandom
| 하나의 블록에서 순차적으로 리딩 | 주로 하나의 블록에서 하나의 레코드만 읽음 |
| 알차게 빼 먹는다 | 효율이 낮음 / 높은 비용 |
| index leaf block 읽을 때 / full scan 할 때 | Rowid 이용 테이블 액세스 |
| 적은 비용 | DBA 를 이용한 인덱스 수직적 탐색 |
| Full scan 일 경우 Multi - Block I/O 가능 | 클러스터링팩터(C.F)가 낮을 때 높은 성능 |
| Single Block I/O ( 1번블 => 1번블 해야함) |
$$ 비용 ?
Table Radom Access > 수직적 탐색 > 수평적 탐색
'Dev > Database' 카테고리의 다른 글
| 오라클 DBMS 구조 (0) | 2025.10.11 |
|---|---|
| 인덱스와 조인 #2 (0) | 2025.10.11 |
| HOT update (0) | 2025.10.11 |
| Oracle vs PostgreSQL (0) | 2025.10.11 |
| DB | ORACLE 무료 버전 설치 1 (0) | 2025.10.11 |