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) ๊ธฐ๋ฐ ํ์ด์ง ๋๋ ์ ๋ ฌ ํ๋๋ฅผ ํ์ฉํ ํ์ด์ง ์ ๋ต์ ๊ณ ๋ ค.
- ์คํ์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ด์ง์ ํต์ฌ ๊ฐ๋
์ด์ง๋ง, ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ํ์ด์ง ์ ๋ต์ ์ฌ์ฉํ ํ์๊ฐ ์์.