Pagination
λ§μ μμ λ°μ΄ν°λ₯Ό ν λ²μ λͺ¨λ 보μ¬μ£Όμ§ μκ³ μ¬λ¬ νμ΄μ§λ‘ λλ μ μΆλ ₯νλ κΈ°μ
1.
Page κ°μ²΄ μ μ
2.
쿼리 μ μ©
3.
νμ΄μ§λ€μ΄μ
Page κ°μ²΄ μ μ
νμ΄μ§ μ²λ¦¬λ₯Ό μν νμ κ°, κ·Έλ¦¬κ³ μμμ μ μ
νμκ°
β’
νμ¬ νμ΄μ§ λ²νΈ
β’
νμ΄μ§ λΉ λ°μ΄ν° μ
β’
λ
ΈμΆ νμ΄μ§ μ
β’
λ°μ΄ν° μ
μμ
β’
μμ νμ΄μ§
β’
λ νμ΄μ§
β’
첫 νμ΄μ§
β’
λ§μ§λ§ νμ΄μ§
β’
μμ index
νμ΄μ§ λ¨μλ‘ μΏΌλ¦¬ μ μ©
MySQL : LIMIT (μμindex, νμ΄μ§λΉ λ°μ΄ν° μ)
νμ΄μ§ λ²νΈ : 1
β’
κ²μκΈ λͺ©λ‘μμ 0λ²μ§Έ index λΆν° 10κ°μ λ°μ΄ν°λ§ μ‘°ν
SELECT *
FROM posts
LIMIT (0, 10)
SQL
볡μ¬
νμ΄μ§ λ²νΈ : 5
β’
κ²μκΈ λͺ©λ‘μμ 40λ²μ§Έ index λΆν° 10κ°μ λ°μ΄ν°λ§ μ‘°ν
SELECT *
FROM posts
LIMIT (40, 10)
SQL
볡μ¬
λ°μ΄ν° λͺ©λ‘ λ·°
β’
νμ΄μ§ λ¨μ λ°μ΄ν° λͺ©λ‘ μΆλ ₯
β’
νμ΄μ§ λ²νΈ λͺ©λ‘ μΆλ ₯
νμ΄μ§ μ²λ¦¬ μμ
β’
νμ¬ νμ΄μ§ λ²νΈ : page
β’
νμ΄μ§λΉ λ°μ΄ν° μ : rows
β’
λ
ΈμΆ νμ΄μ§ μ : count
β’
λ°μ΄ν° μ : total
μμ λ²νΈ : ( (νμ¬ νμ΄μ§-1) / λ
ΈμΆ νμ΄μ§ μ ) * λ
ΈμΆ νμ΄μ§ μ + 1
start = ( (page-1) / count ) * count + 1
Java
볡μ¬
λ λ²νΈ : ( (νμ¬ νμ΄μ§-1) / λ
ΈμΆ νμ΄μ§ μ + 1) * λ
ΈμΆ νμ΄μ§ μ
end = ( (page-1) / count + 1) * count
Java
볡μ¬
첫 λ²νΈ : 1
first = 1
Java
볡μ¬
λ§μ§λ§ λ²νΈ : ( λ°μ΄ν° κ°μ - 1) / νμ΄μ§λΉ λ°μ΄ν° μ + 1
last = ( total - 1) / rows + 1
Java
볡μ¬
μμ λ²νΈ μμ
β’
λ
ΈμΆ νμ΄μ§ μ : 10
β’
νμ¬ λ²νΈ : 15
μμ λ²νΈ : 11
β’
νμ¬ λ²νΈ : 37
μμ λ²νΈ : 31
β’
νμ¬ λ²νΈ : 123
μμ λ²νΈ : 121
β’
λ
ΈμΆ νμ΄μ§ μ : 15
β’
νμ¬ λ²νΈ : 7
μμ λ²νΈ : 1
β’
νμ¬ λ²νΈ : 47
μμ λ²νΈ : 46 (1~15) (16~30) (31~45) (46~60)
β’
νμ¬ λ²νΈ : 155
μμ λ²νΈ : 151 (136~150) (151~165)
λ λ²νΈ μμ
β’
λ
ΈμΆ νμ΄μ§ μ : 10
β’
νμ¬ λ²νΈ : 15
λ λ²νΈ : 20
β’
νμ¬ λ²νΈ : 37
λ λ²νΈ : 40
β’
νμ¬ λ²νΈ : 123
λ λ²νΈ : 130
λ§μ§λ§ λ²νΈ μμ
β’
νμ΄μ§ λΉ κ²μκΈ μ : 10
β’
μ 체 λ°μ΄ν° μ : 1
λ§μ§λ§ λ²νΈ : 1
β’
μ 체 λ°μ΄ν° μ : 100
λ§μ§λ§ λ²νΈ : 10
β’
μ 체 λ°μ΄ν° μ : 253
λ§μ§λ§ λ²νΈ : 26
β’
μ 체 λ°μ΄ν° μ : 47
λ§μ§λ§ λ²νΈ : 5