조건은 데이터베이스 가까이에 둬
WHERE는 결과에 들어올 행을 고르는 문이야. 앱으로 전부 가져와 나중에 거르지 말고 데이터가 있는 곳에서 범위를 줄여. 예를 들어 최근 7일에 가입한 사용자, 가격이 50 이상 100 미만인 상품, discount가 NULL이거나 0인 행을 SQL이 직접 찾게 해.
비교와 논리를 조합해
=, <>, <, <=, >, >=로 값을 비교하고 AND, OR, NOT으로 조건을 엮어. AND와 OR를 함께 쓰는 복잡한 조건에는 괄호를 넣어 평가 순서를 분명히 해. IN (...)과 NOT IN (...), BETWEEN x AND y, LIKE와 ILIKE도 자주 써. NULL은 IS NULL·IS NOT NULL·IS DISTINCT FROM으로 다뤄야 해.
표현식과 색인은 같은 모양이어야 해
WHERE LOWER(email) = 'foo@bar.com'처럼 열에 함수를 씌우면 보통의 email 색인을 그대로 쓰지 못할 수 있어. 표현식 색인을 맞추거나 저장 방식을 정리해. @gmail.com으로 끝나는 주소나 discount 조건도 실제 질의 모양을 보고 색인을 설계해야 해.