약 5분
본문 듣기
읽기 설정
글자 크기
줄 간격
글꼴
2.16 Index
데이터베이스를 활용하는 개발자에게 있어 필수 개념 중 하나인 인덱스(Index)에 대해 알아봅시다. 인덱스는 데이터베이스에서 특정 데이터의 검색 속도를 향상시키기 위해 사용되는 자료 구조입니다. 데이터를 검색할 때, 인덱스를 사용하면 전체 테이블을 스캔하지 않고도 원하는 정보를 빠르게 찾을 수 있습니다.
데이터 저장과 검색 속도의 중요성
우리가 웹 애플리케이션을 개발함에 있어, 데이터의 빠른 검색은 사용자 경험에 큰 영향을 미칩니다. 예를 들어, 쇼핑몰에서는 사용자가 특정 상품을 검색했을 때, 얼마나 신속하게 결과를 보여주는지가 매출에도 직접적인 영향을 미칠 수 있습니다. 인덱스는 이러한 검색 속도를 개선하는 데 핵심적인 역할을 합니다.
예제: 인덱스 생성
인덱스를 생성하기 위해서는 CREATE INDEX 구문을 사용합니다. 아래 예제를 통해 인덱스를 생성하고, 이를 활용한 검색 속도의 차이를 살펴보겠습니다.
1. 인덱스 생성 SQL
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
price DECIMAL(10, 2)
);
INSERT INTO products (name, price) VALUES
('Apple', 0.60),
('Banana', 0.40),
('Cherry', 2.00),
('Date', 3.00);
CREATE INDEX idx_product_name ON products(name);
2. 인덱스를 활용한 검색
인덱스를 생성한 상태에서 상품 이름으로 검색해 보겠습니다.
SELECT * FROM products WHERE name = 'Cherry';
실행 후 데이터 변화
실행 후에는 데이터가 변화하지 않지만, 검색의 수행 속도는 현저하게 빨라질 것입니다.
실습
- 위의 예제를 기반으로
products테이블에 몇 가지 데이터를 추가한 후, 다른 인덱스를 생성하여 검색 속도를 테스트해보세요. products테이블에서 상품 가격에 대한 인덱스를 생성한 후, 가격으로 검색하는 쿼리를 실행하여 성능 차이를 비교해 보세요.
프로젝트
- 간단한 쇼핑몰 데이터베이스를 설계하여 다양한 상품에 대한 인덱스를 적용해 보고, 검색 속도를 비교 분석하는 프로젝트를 진행해 보세요. 여러 조건별로 인덱스를 만드는 작업을 통해 인덱스의 필요성을 체감할 수 있습니다.
정리
인덱스는 데이터베이스 성능을 극대화하는 강력한 도구입니다. 여러분이 실제 웹 애플리케이션에서 인덱스를 적절하게 사용함으로써, 더욱 빠르고 효율적인 데이터 검색이 가능하도록 해야 합니다. 다음 챕터에서는 트랜잭션에 대해 알아보도록 하겠습니다.
코드
sql
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
price DECIMAL(10, 2)
);
INSERT INTO products (name, price) VALUES
('Apple', 0.60),
('Banana', 0.40),
('Cherry', 2.00),
('Date', 3.00);
CREATE INDEX idx_product_name ON products(name);
SELECT * FROM products WHERE name = 'Cherry';
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.