순서 보장 규칙

ORDER BY가 없으면 결과 순서는 우연일 뿐, SQL의 계약이 아닙니다.

같은 쿼리가 오늘은 입력 순서처럼 보여도, 인덱스나 실행 계획이 바뀌면 내일은 다른 순서로 반환될 수 있습니다.

저장 구조

테이블의 물리 배치가 바뀜

INSERT, UPDATE, VACUUM, 재구성 작업 뒤에 같은 행도 다른 위치에서 읽힐 수 있습니다.

인덱스 선택

읽는 경로가 달라짐

옵티마이저가 테이블 스캔 대신 다른 인덱스를 선택하면 반환 순서도 달라질 수 있습니다.

병렬 처리

합쳐지는 순서가 달라짐

병렬 실행이나 조인 방식 변화로 먼저 도착한 행의 순서가 달라질 수 있습니다.

SELECT product_id, name, created_at
FROM products
ORDER BY created_at DESC, product_id DESC
LIMIT 10;

업무 기준 컬럼고유 보조 키를 함께 정렬하면 동점 행의 순서까지 안정적으로 고정됩니다.