[튜닝일지] 5. 쿼리문 조건에도 순서가 있다? [백엔드 개발자의 쿼리 튜닝일지]
·
◈ Refactoring/쿼리 튜닝일지🔧
5. 쿼리문 조건에도 순서가 있다? SQL 쿼리를 작성할 때, join이나 where 절에 들어가는 조건문의 순서는 중요한 역할을 한다. 가장 엄격한 필터링 조건을 먼저 배치하여 행을 최대한 빨리 필터링하면 나머지 조건에 대해 평가할 행 수가 줄어들어 성능이 향상되며, 이는 데이터베이스 시스템의 옵티마이저가 최적의 실행 계획을 수립하는 데 도움이 된다. 조건문의 효율 순위는 주로 데이터베이스의 인덱스 및 데이터 분포에 따라 다를 수 있으나 인덱스를 타는 여부로만 고려할 때, 조건문의 효율 순위는 다음과 같다. 동등 비교: 동등 비교는 일반적으로 인덱스를 가장 잘 활용할 수 있는 조건이다. 특정 컬럼에 대한 동등한 값을 비교하는 경우에는 인덱스를 타고 해당 값과 일치하는 행을 빠르게 찾을 수 있다. 날짜 ..
[MySQL] EXPLAIN을 이해하여 쿼리 성능 최적화하기 [MySQL 인덱스 타는지 확인하는 방법]
·
▣ SQL : Database/MySQL🐬
- EXPLAIN을 이해하여 쿼리 성능 최적화하기 1. EXPLAIN이란? EXPLAIN은 MySQL 쿼리의 실행 계획을 분석하는 데 사용되는 명령어이며, 쿼리를 실행하는 방식과 각 단계에서 어떤 작업을 수행하는지 볼 수 있다. (Explain을 사용하면 쿼리의 성능을 평가하고 최적화할 수 있다.) EXPLAIN SELECT * FROM table_name WHERE condition; 위 쿼리를 실행하면 아래와 같이 해당 쿼리의 실행 계획을 출력한다. - EXPLAIN 출력 컬럼 별 의미 id: 쿼리 내 단계의 순서 select_type: 쿼리의 유형 (단순 SELECT, UNION 등) table: 접근하는 테이블의 이름 type: 각 테이블에 대한 데이터 액세스 방법 (예: ALL, index 등)..