Anti-patterns
안티패턴은 증상보다 원인을 기준으로 고친다
느린 쿼리 이름만 외우면 위험하다. 각 패턴이 왜 비용을 만들고 어떤 변경으로 검증할지 연결해 본다.
패턴
비용이 생기는 이유
개선 후보
SELECT *
불필요한 컬럼·네트워크·커버링 실패
필요 컬럼만 명시
N+1
같은 형태의 쿼리가 행 수만큼 반복
JOIN, IN, batch fetch
함수 조건
컬럼 원형 인덱스와 조건식 불일치
범위 조건 또는 표현식 인덱스
암묵 변환
컬럼 쪽 변환 시 인덱스 활용 저하
바인드·리터럴 타입 일치
LIKE '%x%'
B-tree 선두 탐색이 어려움
전문 검색, n-gram, 검색 엔진
OR / DISTINCT
인덱스 선택과 정렬·해시 비용 증가
UNION ALL 검증, 중복 원인 제거