2.16 Index

약 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';

실행 후 데이터 변화

실행 후에는 데이터가 변화하지 않지만, 검색의 수행 속도는 현저하게 빨라질 것입니다.

실습

  1. 위의 예제를 기반으로 products 테이블에 몇 가지 데이터를 추가한 후, 다른 인덱스를 생성하여 검색 속도를 테스트해보세요.
  2. 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

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.