본문 바로가기
데이터베이스

MySQL : Index

by P_eli 2023. 11. 23.
728x90
반응형

MySQL의 인덱스에 대해 살펴보면서, 실제 예제를 통해 어떻게 성능을 향상시킬 수 있는지 알아보겠습니다.

인덱스가 왜 필요한가요?

데이터베이스에서 인덱스는 데이터를 빠르게 찾을 수 있도록 도와주는 도구입니다. 예를 들어, 사용자 테이블에서 특정 이메일 주소를 가진 사용자를 찾는다고 가정해봅시다.

-- 인덱스 없이 검색
SELECT * FROM users WHERE email = 'example@email.com';

 

만약 이 테이블에 수천 개의 행이 있다면 검색이 느려질 수 있습니다. 이때 인덱스를 사용하면 훨씬 빠르게 원하는 결과를 얻을 수 있습니다.

단일 컬럼 인덱스 예제

-- 이메일 컬럼에 단일 인덱스 생성
CREATE INDEX idx_email ON users(email);

 

이제 같은 쿼리를 수행하면,

-- 인덱스를 사용한 검색
SELECT * FROM users WHERE email = 'example@email.com';

 

훨씬 빠른 결과를 얻을 수 있습니다.

복합 인덱스 예제

때로는 여러 컬럼을 조합해야 하는 경우가 있습니다. 예를 들어, 이름과 성을 기준으로 사용자를 찾는다면,

-- 이름과 성에 복합 인덱스 생성
CREATE INDEX idx_name_lastname ON users(name, lastname);

 

그리고 쿼리를 실행하면,

-- 복합 인덱스를 사용한 검색
SELECT * FROM users WHERE name = 'John' AND lastname = 'Doe';

 

검색 속도가 향상됩니다.

주의사항

인덱스를 사용하면 읽기 속도는 향상되지만, 쓰기 연산은 조금 느려질 수 있습니다. 따라서 어떤 컬럼에 인덱스를 생성할지 신중하게 결정해야 합니다.

728x90
반응형

'데이터베이스' 카테고리의 다른 글

MySQL 인덱스의 종류와 성능 향상을 위한 최적화 방법  (0) 2023.12.13
MySQL : Join  (1) 2023.11.23
MySQL : 정렬 (ORDER)  (0) 2023.11.23
MySQL : 그룹핑(GROUP BY)  (1) 2023.11.22
MySQL : DELETE 문의 기초  (0) 2023.11.22