데이터베이스에서 쿼리 성능을 최적화하는 방법은 다양하지만, 그중에서도 Covering Index(커버링 인덱스)는 효율적인 데이터 검색을 가능하게 해준다.
Covering Index란?
Covering Index(커버링 인덱스)는 쿼리에서 요청된 모든 컬럼 값이 인덱스 자체에 포함되어, 데이터가 저장된 테이블을 직접 참조하지 않고도 결과를 반환할 수 있는 인덱스를 의미한다.
동작 방식
- 일반적으로 쿼리를 실행하면, 데이터베이스는 인덱스를 사용해 검색한 후, 필요한 값을 가져오기 위해 테이블 데이터를 다시 참조한다(Back To Table).
- 하지만 Covering Index는 쿼리에서 필요한 모든 데이터를 인덱스에 포함하고 있으므로, 테이블을 참조할 필요가 없어 성능이 크게 향상된다.
예제
테이블 생성
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
total_amount DECIMAL(10, 2),
INDEX idx_covering (customer_id, order_date, total_amount)
);
쿼리
SELECT customer_id, order_date, total_amount
FROM orders
WHERE customer_id = 1;
- idx_covering 인덱스에 customer_id, order_date, total_amount가 포함되어 있어, 테이블 접근 없이 인덱스만으로 결과를 반환한다.
'개인 학습 > DataBase' 카테고리의 다른 글
MySQL filesort (0) | 2024.12.30 |
---|---|
ORDER BY와 인덱스의 관계 + sort_buffer_size (0) | 2024.12.27 |
EXPLAIN을 활용한 SQL 쿼리 성능 분석 방법 (0) | 2024.12.22 |
Multi Column Index (0) | 2024.12.10 |
인덱스(Index)란? (1) | 2024.12.10 |