INDEX
index는 DB 에서 검색속도를 빠르게 하기 위해 사용한다.
인덱스는 테이블의 열에 대한 정보를 미리 정리해서 저장하여, 쿼리 실행 시 데이터 검색을 더 빠르게 만들어준다.
index 의 특징
1. 검색 속도가 빨라진다.
2. 인덱스 생성에 시간과 공간 필요.
3. 삽입/갱신/삭제가 빈번히 일어날 경우 성능 저하.
index 가 필요한 경우: 데이터가 많을 경우, join 이 많이 사용된 경우
index 가 필요하지 않은 경우 : 데이터가 적을 경우, 삽입/갱신/삭제 가 빈번히 일어나는 경우
index 의 종류
1. 고유(unique) 인덱스
2. 비고유(none-unique) 인덱스
3. 결합(combination) 인덱스
1) 고유(unique) 인덱스
-- 중복되지 않는 데이터를 대상으로 걸 수 있는 인덱스
-- PK가 선언되면 이 인덱스가 자동으로 생성된다
-- CREATE UNIQUE INDEX [index name] ON [table](column)
-- Duplicate entry 'kim' for key 'emp_ename_idx'
-- 중복되는 데이터가 있어서 고유 인덱스 생성 불가
create unique index emp_ename_idx on emp(ename);
2) 비고유(none-unique) 인덱스
-- 중복된 데이터를 대상으로 걸 수 있는 인덱스
-- FK 를 선언하면 이 인덱스가 자동으로 생성된다
-- CREATE INDEX [index name] ON [table](column)
create index emp_ename_idx on emp(ename);
3) 결합(combination) 인덱스
-- 인덱스 생성시 둘 이상의 컬럼을 조합해서 생성할 경우(고유, 비고유 모두 사용 가능)
-- 16개 까지 컬럼을 조합할 수 있다
-- CREATE [UNIQUE]INDEX [index name] ON [table](column, ...)
create unique index emp_combi_idx on emp(ename, job, deptno);
4) 인덱스 사전(인덱스 리스트)
show index from emp;
5) 인덱스 삭제
-- ALTER TABLE [table name] DROP INDEX [index name]
-- emp_combi_idx
alter table emp drop index emp_combi_idx;
-- emp_ename_idx
alter table emp drop index emp_ename_idx;
'개발 > DB(MariaDB)' 카테고리의 다른 글
12. DB - (auto_increment) (0) | 2025.03.18 |
---|---|
11. DB - (VIEW) (0) | 2025.03.17 |
9. DB - (EXISTS, ANY, ALL) (0) | 2025.03.17 |
8. DB - (JOIN) (0) | 2025.03.17 |
7. DB - (서브쿼리) (0) | 2025.03.17 |