MySQL
INDEX
개발자공부
2024. 6. 11. 06:54
인덱스 INDEX
MySQL에서 인덱스(index)는 데이터베이스 내에 별도로 저장되어 있다.
인덱스는 데이터베이스에서 데이터 검색 속도를 향상 시키기 위해 사용되는 구조로, 데이터베이스의 열(column) 값을 이용하여 검색을 빠르게 하기 위한 데이터 구조이다.
인덱스는 특정한 열에 대해 정렬된 값을 가지고 있으며, 해당 열의 값을 이용하여 검색을 수행할 때 이를 이용하여 빠르게 검색할 수 있다.
예를 들어 여러분들이 자바 책을 한 권 가지고 있다고 했을 때 인터페이스가 대한 정보가 궁금하다면 여러분들은 첫 페이지 부터 끝 페이지 까지 전체 탐색을 하는 것이 아니고 보통 책의 맨 뒤장에 나와있는 인덱스 정보를 확인해서 인터페이스와 관련된 정보가 몇 페이지 존재하는지 빠르게 탐색하고 상세한 정보를 확인할 수 있는 구조를 만들어 두는 것이라고 이해할 수 있다.
인덱스를 사용하면 데이터 검색 속도를 빠르게 할 수 있으며, 대량의 데이터를 처리할 때 효율적으로 검색을 수행할 수 있다. 하지만, 인덱스를 사용하면 일반적인 데이터보다 추가적인 디스크 공간이 필요하며, 인덱스를 생성할 때 데이터를 정렬하는 작업이 필요하기 때문에 인덱스를 생성하거나 수정하는 데 시간이 걸릴 수 있다. 따라서 인덱스를 사용할 때는 인덱스를 적절하게 설계하고 사용하는 것이 중요하다.
PK 선언하면 자동으로 인덱스가 걸림. UNIQUE 선언하면 자동으로 인덱스 걸림
인덱스 선언하는 방법
-- 테이블 설계시에 인덱스 제약을 추가 하는 방법
create table student2(
id int primary key,
name varchar(50) not null,
grade int not null,
major varchar(50),
index idx_major(major)
);
desc student2;
-- 이미 생성된 테이블에 인덱스를 추가하는 방법
alter table student2 add index idx_grade(grade);