SQL | νμ΄μ§λ€μ΄μ
1. νμ΄μ§λ€μ΄μ (Pasination)μ΄λ
- μ½ν μΈ λ₯Ό μ¬λ¬ νμ΄μ§λ‘ λλμ΄ λ€μ λλ μ΄μ νμ΄μ§λ‘ μ΄λνκ±°λ νΉμ νμ΄μ§λ‘ μ΄λν μ μλ μμ
- 리μ€νΈκ° λ§μ ν νλ©΄μ κ³Όλν μ€ν¬λ‘€μ΄ λ°μνκ² λλ κ²½μ° μ μ©
1.1 νμ΄μ§λ€μ΄μ μ μ¬μ©νλ μ΄μ
λ§μ μμ λ°μ΄ν°λ₯Ό λ΄κ³ μλ μλ²μ κ²½μ° μ¬μ©μκ° μ μν λλ§λ€ μ 체 λ°μ΄ν°λ₯Ό λͺ¨λ κ°μ Έμ€λ €λ©΄ μ€λ μκ°μ΄ νμνκ³ , μ΄λ μ¬μ©μμ νΈλ¦¬μ± μΈ‘λ©΄μμ μ’μ§ λͺ»ν κ²°κ³Όκ° λ°μνλ€. μ΄λ₯Ό μν΄ νμ΄μ§λ€μ΄μ μ μ΄μ©ν΄ λ°μ΄ν°λ₯Ό μ‘°κΈμ© λλμ΄ κ°μ Έμ€κ³ λ μ½κ³ λΉ λ₯Έ μ κ·Όμ κ°λ₯νκ² νλ€.
1.2 νμ΄μ§ λ€μ΄μ μ μ’ λ₯
- μ€νμ νμ΄μ§ : DBμ offset 쿼리λ₯Ό μ¬μ©νμ¬ 'νμ΄μ§' λ¨μλ‘ κ΅¬λΆνμ¬ μμ²/μλ΅νκ² κ΅¬ν
- 컀μ νμ΄μ§ : ν΄λΌμ΄μΈνΈκ° κ°μ Έκ° λ§μ§λ§ rowμ μμμ λ€μ rowλ€μ nκ° μμ²/μλ΅νκ² κ΅¬ν
2. μ€νμ νμ΄μ§
νν λ³Ό μ μλ λ€μκ³Ό κ°μ νμ΄μ§ ꡬνμ μ€νμ κΈ°λ° νμ΄μ§λ€μ΄μ μ΄λΌκ³ νλ€. νλ‘ νΈμλμμ λͺ μμ μΈ νμ΄μ§ λ²νΌκ³Ό ν¨κ» μ°μ΄λ©°, λ²νΌμ ν΄λ¦ν¨μΌλ‘μ¨ νμ΄μ§λ₯Ό νν λκΈΈ μ μλ€.

μλ²κ° λ°μ΄ν°λ² μ΄μ€μ ν΅μ ν΄ ν΄λ¦¬μ LIMITκ³Ό OFFSETμ ν΅ν΄ μλ£λ₯Ό μμ²νλ€.
SELECT * FROM table
ORDER BY timestamp
OFFSET {μ€νμ }
LIMIT {νμ΄μ§ λΉ μλ£μ κ°―}
2.1 μ€νμ κΈ°λ° νμ΄μ§λ€μ΄μ μ λ¬Έμ μ
λ°μ΄ν° ν¬κΈ°μ λ°λ₯Έ λ¬Έμ
λ§μ§λ§ νμ΄μ§λ₯Ό ꡬνκΈ° μν΄ μ 체 κ°―μλ₯Ό μμμΌνλ©°, λ°μ΄ν° μ¬μ΄μ¦κ° μ»€μ§ μλ‘ μ 체 λ°μ΄ν° κ°―μλ₯Ό ꡬνλ κ²μ΄ λΆνκ° λ μ μλ€. λν, OFFSETμ΄ μ»€μ§λ€λ©΄ λΆνμν λ°μ΄ν° μ‘°νκ° λ§μμ§κ³ μ΄λ μλμ μν₯μ λ―ΈμΉκ² λλ€.
λ°μ΄ν° μ€λ³΅ λ° λλ½
OFFSET λ°©μμ κ²½μ° λ°μ΄ν°μ μ¦μ μΆκ°μ μμ κ° μλ κ²½μ°μ λ°μ΄ν°κ° μ€λ³΅λκ±°λ λλ½λλ λ±μ λ¬Έμ κ° λ°μνλ€.
μ΄μ κ°μ λ¬Έμ μ λ€λ‘ μΈν΄ λ°μ΄ν°μ ν¬κΈ°κ° ν¬κ³ , μμ μ΄ λΉλ²νκ² λ°μνλ€λ©΄ OFFSET λ°©μ보λ€λ CURSOR λ°©μμ΄ λ μ ν©νλ€κ³ λ³Ό μ μλ€.
3. 컀μ νμ΄μ§
μ΄ λ°©λ²μ μ€μκ° λ°μ΄ν°μ λλμ λ°μ΄ν°(νμ΄μ€λΆ, μ¬λ , νΈμν° λ±)μ λ€λ£¨λ μΉμ¬μ΄νΈμμ μ°μ΄λ νμ΄μ§ λ°©λ²μ΄λ€.
νλ‘ νΈμμ 무ν μ€ν¬λ‘€(μΈμ€ν κ·Έλ¨, νμ΄μ€λΆμ²λΌ νλ¨μΌλ‘ κ³μ μ€ν¬λ‘€ λλ νμ΄μ§ λ°©μ)μ μ§μν λ μ°μΈλ€.

컀μ κΈ°λ° νμ΄μ§μ νμ΄μ§ λ²νΈκ° μλ ν€ λ²νΈλ₯Ό ν΅ν΄ νμ΄μ§λ€μ΄μ μ ꡬννλ€.
SELECT * FROM product LIMIT 40 // 1~40κΉμ§μ κ° λ°ν
SELECT * FROM product WHERE id > {κΈ°μ€κ°} LIMIT 40;
3.1 컀μ κΈ°λ° νμ΄μ§μ λ¨μ
νμ§λ§ 컀μ κΈ°λ° νμ΄μ§λ μ 체 λ°μ΄ν°λ₯Ό μ‘°ννμ§ μκΈ° λλ¬Έμ μ€νμ κΈ°λ° νμ΄μ§κ³Ό κ°μ΄ νμ΄μ§ λ²νΌμ UI ꡬνμ΄ μ΄λ ΅λ€λ λ¨μ μ΄ μκΈ°λ νλ€.
π μ°Έκ³ μλ£
1. http://61.107.76.13/Li/04_25.html
2. https://betterdev.tistory.com/17
Paginationμ΄λ (νμ΄μ§ μ²λ¦¬) - Offset vs Cursor
1. Paginationμ΄λ Paginationμ΄λ κ²μ κ²°κ³Όλ₯Ό κ°μ Έμ¬ λ λ°μ΄ν°λ₯Ό μͺΌκ° λ²νΈλ₯Ό 맀겨 μΌλΆλ§ κ°μ Έμ€λ κΈ°λ²μ΄λ€ 1.1 Paginationμ μ¬μ©νλ μ΄μ μ¬μ©μκ° μ ν리μΌμ΄μ μ μ¬μ© μ€ κ²μν, μν λͺ©λ‘ λ±μ
betterdev.tistory.com