728x90
목차
1. INDEX
1. INDEX
인덱스(INDEX) 개념
- 검색을 빠르게 하기 위한 자료구조(주로 B트리 계열)
- 기본키는 자동으로 인덱스설정
- 인덱스 ON/OFF를 통해 검색속도 차이 체감(대량의 데이터일수록 큰 영향)
- 조인(JOIN)시에도 영향을 줌
DBMS의 기초
정렬
- 빠른 검색을 위해서는 데이터가 반드시 정렬(Sorting)되어 있어야 함
- 정렬 되어 있지 않다면 평균적으로 전체 데이터의 절반 필요(최선: 1, 최약: N, 평균:N/2)
- 정렬되면 있을 경우 데이터를 빠른 시간 안에 찾을 수 있음 O(NlogN)-O(N^2)
- 퀵 정렬/힙정렬 계열이 주로 사용됨
인덱스(Index)
- 인덱스 종류
- 데이터 추가/수정/삭제할 때마다 정렬/인덱스 업데이트가 일어남
이진탐색(Binary Search)
- 데이터를 정렬 후 “test” 단어를 검색하는 경우
- 데이터가 추가/삭제/변경될 때마다 한가운데/왼쪽 가운데/오른쪽 가운데값 등을 미리 계산해 놓음
B-트리(B-Tree)
- 이진 검색과 유사하지만 한 번에 비교를 2번(a, b : a < b)
- B-트리 계열이 이진검색 계열보다 빠름
- 데이터가 추가/삭제/변경 될 때마다 a, b 값을 업데이트
인덱스(INDEX) 설정
- 인덱스 추가/삭제
create database sampleDB;
create table BusinessCard(Name Varchar(255), Address Varchar(255), Telephone Varchar(255));
insert into BusinessCard values (‘Bob’, ‘Seocho-dong 123’, ‘123-4567’);
insert into BusinessCard values (‘Sam’, ‘Sindang-dong 456’, 321-4321’);
create index BusinessCard_Telephone_index on BusinessCard(Telephone);
728x90
'IT > SQL' 카테고리의 다른 글
MySQL[15] - 데이터베이스 백업/복원/로그 (0) | 2022.06.06 |
---|---|
MySQL[14] - 메타데이터, 캐릭터셋/콜레이션, 스토리지 엔진 (0) | 2022.06.06 |
MySQL[12] - 권한 설정, 역할 설정, MySQL 원격접속 설정 (0) | 2022.06.02 |
MySQL[11] - 스키마 수정, 스키마 삭제 (0) | 2022.06.02 |
MySQL[10] - 중복정보 수정, 정규형, 참조무결성 (0) | 2022.05.29 |