이전 글에서 더 빠른 SQL 쿼리 실행을 위한 개념을 다뤄봤는데요.
이번에는 예시 쿼리문을 통해 어떻게 쿼리 향상이 가능한지 알아보겠습니다.
예1) 적절한 컬럼에 인덱스 생성
고객 테이블에서 자주 검색되는 'last_name' 컬럼과 'email' 컬럼에 인덱스를 생성하여 검색 성능을 향상시키는 예시입니다.
CREATE INDEX idx_name ON customers(last_name);
CREATE INDEX idx_email ON customers(email);
이 인덱스들은 고객의 이름 또는 이메일을 기준으로 데이터를 자주 검색할 떄 유용합니다.
예2) 다중 컬럼 인덱스
주문 테이블에서 고객 ID와 주문 날짜를 함께 자주 조회한다면, 다음과 같이 다중 컬럼 인덱스를 생성할 수 있습니다.
CREATE INDEX idx_customer_order ON orders(customer_id, order_date);
이 인덱스는 쿼리에서 customer_id와 order_date를 함께 사용할 때,
특정 고객이 특정 기간동안의 주문을 조회할 때 성능 향상을 도모할 수 있습니다.
예3) 인덱스를 활용한 효율적인 쿼리
직원의 부서 별로 최고 급여를 받는 직원을 찾는 쿼리입니다.
이 쿼리는 인덱스를 활용해 employee테이블의 department와 salary 컬럼에서 빠르게 데이터를 찾을 수 있습니다.
SELECT department, MAX(salary) AS max_salary
FROM employees
GROUP BY department;
이 쿼리를 실행하기 전에 다음과 같이 department와 salary에 대한 인덱스를 생성하면 성능이 향상됩니다.
CREATE INDEX idx_department_salary ON employees(department, salary);
예4) 쿼리 최적화
고객 테이블에서 특정지역(서울)에 사는 고객들의 이메일만을 선택하는 쿼리입니다.
불필요한 데이터를 읽지 않도록 필요한 컬럼만 지정합니다.
SELECT email
FROM customers
WHERE city = '서울';
이 쿼리는 city 컬럼에 인덱스가 있다면 훨씬 빠르게 실행됩니다.
CREATE INDEX idx_city ON customers(city);
위 4가지 예시 쿼리들은 인덱싱과 성능 최적화의 기본적인 방법을 보여줍니다.
적절한 인덱스를 사용하고, 쿼리 효율적으로 작성함으로써 SQL 쿼리의 실행 속도를 크게 향상시킬 수 있습니다.