[튜닝일지] 2. JOIN, 잘 좀 만나봅시다. (feat. or 조건) [백엔드 개발자의 쿼리 튜닝일지]
·
◈ Refactoring/쿼리 튜닝일지🔧
[튜닝일지] 1. 인덱스, 너 잘 타고 있니? [백엔드 개발자의 쿼리 튜닝일지] 1. 인덱스, 너 잘 타고 있니? 이번에 담당하게 된 프로젝트가 있는데 사이트 로딩 속도가 매우 느렸다. 아래와 같이 쿼리 조회 자체가 안되는 경우도 많아서 쿼리부터 개선 해보자는 마음으로 시 yermi.tistory.com 2. JOIN, 잘 좀 만나봅시다. (feat. or 조건) 지난 번에는 인덱스를 태우기 위해 특정 컬럼을 서브쿼리로 변경하였다. 이번 쿼리는 실행속도가 약 5초 정도 걸렸으나, 이전 인덱스 작업을 한 view를 참조하고 있었기에 3초 중반 정도로 개선이 되었다. 이번에는 이 쿼리를 1초 중반대로 줄여볼 예정이다. EXPLAIN으로 성능검사를 해보니, rfd라는 테이블이 인덱스를 안타고 있었다. or 조..
[튜닝일지] 1. Index, 너 잘 타고 있니? [백엔드 개발자의 쿼리 튜닝일지]
·
◈ Refactoring/쿼리 튜닝일지🔧
1. Index, 너 잘 타고 있니? 이번에 담당하게 된 프로젝트가 있는데 사이트 로딩 속도가 매우 느렸다. 아래와 같이 쿼리 조회 자체가 안되는 경우도 많아서 쿼리부터 개선 해보자는 마음으로 시작했다. (웹에서도 관련 기능이 당연히 동작 안하는데, 고객사는 안되는 거라 생각하고 못쓰고 있었다고 한다..😂😂) 소스를 분석하면서 view에서 실행속도가 느리다는 걸 파악했다. view가 view를 join하고 중첩하여 참조하다보니 실행 속도가 배로 느려진 것.. (이 중 300초 초과되는 검색과 관련된 view는 특정 view를 3번에 걸쳐 참조하고 있었다.) 보안 상의 이유로 view 이름을 공개할 수는 없지만, 위에 표에서 노란색으로 되어 있는 view는 성능이 낮은 모든 view에서 참조하고 있었다. ..
[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 등)..