728x90
INDEX
검색을 빠르게 하기 위한 자료구조(대부분 B트리)
레코드 추가/수정/삭제 시 해당 컬럼으로 다시 정렬한 후 검색에 필요한 값들을 미리 계산해 검색 속도를 높임(trade off)
기본키는 자동으로 인덱스로 설정된다.
(1)인덱스가 설정된 기본키로 검색 했을 경우
select * from employees where emp_no=40000 LIMIT 0, 500
1 row(s) returned 0.000 sec / 0.000 sec
기본키로 설정된 emp_no으로 검색시 매우 적은시간으로 검색이 완료되는 것을 볼 수 있다.
(2)인덱스가 설정되지 않은 컬럼으로 검색 할 경우
select * from employees where first_name="Nishit" and last_name="Asser" LIMIT 0, 500
1 row(s) returned 0.110 sec / 0.000 sec
인덱스로 설정되지 않은 first_name과 last_name으로 검색시 매우 많은 시간이 걸린다.
(3)first_name,last_name 인덱스 설정후 검색
1.인덱스 추가
CREATE INDEX 인덱스명 ON 테이블명(컬럼명)
CREATE INDEX 인덱스명 ON 테이블명(컬럼명1,컬럼명2....)
CREATE UNIQUE INDEX 인덱스명 ON 테이블명(컬럼명)
create index employees_index on employees(first_name,last_name);
select * from employees where first_name="Nishit" and last_name="Asser" LIMIT 0, 500
1 row(s) returned 0.000 sec / 0.000 sec
first_name과 last_name을 인덱스로 설정 후 검색하는 시간이 매우 많이 줄었다.
2.인덱스 확인
SHOW INDEX FROM 테이블명
show index from employees;
3. 인덱스 삭제
ALTER TABLE 테이블명 DROP INDEX 인덱스명
alter table employees drop index employees_index
728x90
'MySQL' 카테고리의 다른 글
파티셔닝,데이터베이스복제(Replication) (0) | 2022.12.05 |
---|---|
메타데이터 (0) | 2022.12.03 |
스키마 수정,스키마 삭제 (0) | 2022.11.30 |
정규화,참조무결성 (0) | 2022.11.29 |
자료형,제약조건 (0) | 2022.11.23 |