• 핵심 키워드 : 인덱스, 쿼리 튜닝, 정규화, 캐싱

SQL 쿼리를 최적화하는 이유

SQL 쿼리 최적화는 성능 향상, 응답 시간 단축, 기술 자원 보존과 비용 절약 등의 이유로 중요하다. 효율적인 쿼리를 작성하려면 필요한 컬럼만 선택하고 LIMIT나 * 을 적절히 사용하는 등의 방법을 활용할 수 있다.

-- 나쁜 예
Select * from customers;

-- 좋은 예
select name, age, city from customers;
  • 데이터베이스 서버가 불필요한 작업을 수행하지 않고 필요한 데이터만 가져오기 때문에 데이터 검색 및 처리 시간이 단축됨
  • 네트워크의 부하, 메모리 사용량이 감소됨
  • 결과 집합이 간결해지고 가독성이 향상됨

쿼리 결과를 미리 열람하기 위해 LIMIT 활용

select name from customers limit 10;
  • 반환되는 행의 수가 제한됨에 따라 네트워크를 통한 데이터 전송량이 줄어들어 전체 쿼리 성능이 향상됨
  • 실행 시간, 메모리 사용량 단축
  • 특정 수의 상위 혹은 하위 행을 선택해 결과를 조정 가능

와일드카드(*)는 문장의 끝에서만 활용

select name from customers where state = 'A%';
  • 인덱스를 효과적으로 활용할 수 있어 쿼리 실행 계획을 최적화할 수 있습니다.
  • 검색 범위를 제한해 검색 정확성이 향상됩니다.

Select Distinct는 가능하면 피하기

-- 나쁜 예
select distinct name, age from customers;

-- 좋은 예
select name, age, gender, city, state, zip from customers;
-- 또는
select name, age from customers group by name, age;
  • 중복된 결과를 제거하기 위한 추가 작업이 줄어들어 쿼리 실행 시간이 단축됨.

사용량이 적은 시간을 활용

  • 서버의 로드가 적을 때 대규모 쿼리를 실행하면 자원을 효율적으로, 여유롭게 활용할 수 있음.
  • 사용자 영향을 최소화하여 다른 사용자의 성능에 영향을 주는 가능성을 최소화할 수 있음
profile
성실함과 끊임없는 학습을 통해 성장하는 개발자 지망생입니다. 새로운 도전과 배움을 즐기며 더 나은 코드를 꿈꿉니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN