SQL 쿼리 최적화는 성능 향상, 응답 시간 단축, 기술 자원 보존과 비용 절약 등의 이유로 중요하다. 효율적인 쿼리를 작성하려면 필요한 컬럼만 선택하고 LIMIT나 * 을 적절히 사용하는 등의 방법을 활용할 수 있다.
-- 나쁜 예
Select * from customers;
-- 좋은 예
select name, age, city from customers;
- 데이터베이스 서버가 불필요한 작업을 수행하지 않고 필요한 데이터만 가져오기 때문에 데이터 검색 및 처리 시간이 단축됨
- 네트워크의 부하, 메모리 사용량이 감소됨
- 결과 집합이 간결해지고 가독성이 향상됨
select name from customers limit 10;
- 반환되는 행의 수가 제한됨에 따라 네트워크를 통한 데이터 전송량이 줄어들어 전체 쿼리 성능이 향상됨
- 실행 시간, 메모리 사용량 단축
- 특정 수의 상위 혹은 하위 행을 선택해 결과를 조정 가능
select name from customers where state = 'A%';
- 인덱스를 효과적으로 활용할 수 있어 쿼리 실행 계획을 최적화할 수 있습니다.
- 검색 범위를 제한해 검색 정확성이 향상됩니다.
-- 나쁜 예
select distinct name, age from customers;
-- 좋은 예
select name, age, gender, city, state, zip from customers;
-- 또는
select name, age from customers group by name, age;
- 서버의 로드가 적을 때 대규모 쿼리를 실행하면 자원을 효율적으로, 여유롭게 활용할 수 있음.
- 사용자 영향을 최소화하여 다른 사용자의 성능에 영향을 주는 가능성을 최소화할 수 있음