Home
>
DB
>
πΎ[Database] μ€νμ
(Offset)μ΄λ 무μμΌκΉμ?
Database
Database Optimization
πΎ[Database] μ€νμ
(Offset)μ΄λ 무μμΌκΉμ?
π Intro.
- βοΈ μ€νμ
(Offset)μ λ°μ΄ν°λ² μ΄μ€ μΏΌλ§μ κ²°κ³Ό μ§ν© μ€ νΉμ μμΉμμλΆν° λ°μ΄ν°λ₯Ό λ°ννλλ‘ νλ κΈ°μ€μ μ μλ―Έν¨.
- βοΈ μ£Όλ‘ νμ΄μ§(Paging)μ ꡬνν λ μ¬μ©λ©λλ€.
β
1οΈβ£ μ€νμ
(Offset)μ ν΅μ¬ κ°λ
.
1οΈβ£ λ°μ΄ν° 건λλ°κΈ°.
- βοΈ OFFSETμ κ²°κ³Ό μ§ν©μμ μ²μ λͺ κ°μ ν(Row)μ 건λλ°κ³ κ·Έ λ€μλΆν° λ°μ΄ν°λ₯Ό λ°νν¨.
2οΈβ£ νμ΄μ§κ³Ό ν¨κ» μ¬μ©.
- βοΈ μ£Όλ‘ LIMITμ ν¨κ» μ¬μ©λ¨.
- βοΈ LIMITμ λ°νν λ°μ΄ν°μ κ°μλ₯Ό, OFFSETμ 건λλΈ ν(Row)μ κ°μλ₯Ό μ§μ ν¨.
3οΈβ£ 0-based Indexing.
- βοΈ μ€νμ
μ μΌλ°μ μΌλ‘ 0λΆν° μμν¨.
- βοΈ OFFSET 0μ μ²μλΆν° λ°ννλΌλ μλ―Έμ.
β
2οΈβ£ SQL μμ.
1οΈβ£ κΈ°λ³Έ μμ
SELECT * FROM articles LIMIT 10 OFFSET 20;
- βοΈ μ€λͺ
:
- βοΈ LIMIT 10 : μ΅λ 10κ°μ ν(Row)μ κ°μ Έμ΄.
- βοΈ OFFSET 20 : 첫 20κ°μ ν(Row)μ 건λλ°κ³ , 21λ²μ§Έ νλΆν° λ°νν¨.
2οΈβ£ νμ΄μ§ ꡬν
- βοΈ νμ΄μ§λ€μ΄μ
μ ꡬνν λ OFFSETμ νΉμ νμ΄μ§μ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ λ° μ¬μ©λ©λλ€.
- βοΈ μλ₯Ό λ€μ΄:
- βοΈ νμ΄μ§λΉ λ°μ΄ν° : 10κ°
- βοΈ 1 νμ΄μ§ : OFFSET 0 LIMIT 10
- βοΈ 2 νμ΄μ§ : OFFSET 10 LIMIT 10
- βοΈ 3 νμ΄μ§ : OFFSET 20 LIMIT 10
β
3οΈβ£ μ€νμ
μ λ¬Έμ μ .
1οΈβ£ μ±λ₯ μ ν.
- βοΈ OFFSETμ 건λλ°μ΄μΌ ν λͺ¨λ λ°μ΄ν°λ₯Ό μ½κ³ λμμΌ μ§μ λ ν(Row)μ λ°νν¨.
- βοΈ νμ΄μ§ λ²νΈκ° 컀μ§μλ‘ κ±΄λλΈ λ°μ΄ν°κ° λ§μμ Έ μ±λ₯μ΄ μ νλ¨
2οΈβ£ λΆνμν λ°μ΄ν° μ½κΈ°.
- βοΈ λͺ¨λ λ°μ΄ν°λ₯Ό μ½κ³ λμ νμ μλ λΆλΆμ μ μΈνλ―λ‘ ν¨μ¨μ μ΄μ§ μμ.
3οΈβ£π‘ ν΄κ²° λ°©λ².
- βοΈ μ»€μ(Cursor) κΈ°λ° νμ΄μ§ : νΉμ ν(Row)μ ν€(Key)λ₯Ό κΈ°μ€μΌλ‘ λ€μ νμ΄μ§λ₯Ό λ°νν¨.
- βοΈ μ λ ¬ νλ νμ© : μ λ ¬λ νΉμ IDλ₯Ό κΈ°λ°μΌλ‘ νμ΄μ§ν¨.
π μ 리.
- π μ€νμ
(Offset)
- βοΈ κ²°κ³Ό μ§ν©μμ λͺ κ°μ ν(Row)μ 건λλ°κ³ λ°νν μ§λ₯Ό μ§μ νλ ν€μλμ.
- π μ£Όλ‘ LIMITκ³Ό ν¨κ» μ¬μ©λμ΄ νμ΄μ§μ ꡬνν¨.
- π λ¬Έμ μ
- βοΈ λλμ λ°μ΄ν°λ₯Ό λ€λ£° λ μ±λ₯ μ νκ° λ°μν μ μμ.
- π ν΄κ²°μ±
- βοΈ μ»€μ(Cursor) κΈ°λ° νμ΄μ§ λλ μ λ ¬ νλλ₯Ό νμ©ν νμ΄μ§ μ λ΅μ κ³ λ €.
- μ€νμ
μ λ°μ΄ν°λ² μ΄μ€ νμ΄μ§μ ν΅μ¬ κ°λ
μ΄μ§λ§, μν©μ λ°λΌ λ€λ₯Έ νμ΄μ§ μ λ΅μ μ¬μ©ν νμκ° μμ.