사용자 도구

사이트 도구


database:seek_method

문서의 이전 판입니다!


seek method

  • offset/limit 기반의 페이징 조회는 offset이 뒤로 갈 때마다(즉, 페이지 번호가 커질 때마다) 성능이 계단현상으로 안 좋아지게 된다.
  • 이를 해결하려면 PK id 값으로 정렬을 하고(보통은 asc, DB 자체 기본 PK 정렬을 사용)
  • 처음에는 PK값 제약없이 조회, 조회 결과 limit 이 10이면 마지막 PK값 기억
  • 그 다음부터는 asc 일 때 PK > [앞선 조회의 마지막 PK] limit [pageSize] 형태로 조회를 이어나간다.
    • 물론 desc 일 때< 로 한다.
  • 이 방식을 seek method라고 부르는 듯 하며 (명확한 용어 정의가 된 상태는 아님) 더 보기(more) 방식이라고 하기도 한다.

주의

  • 'PK의 PK >= min(PK column), PK ⇐ max(PK column) 값을 항상 조회 조건에 넣어주는게 좋다(desc는 반대).
  • 이렇게 해야 불필요한 전체 정렬(PK >= min의 역할)이나, 잘못된 인덱스를 타는 현상(PK ⇐ max 의 역할)이 발생하지 않는다.

참조

database/seek_method.1647937382.txt.gz · 마지막으로 수정됨: 2022/03/22 17:23 저자 kwon37xi