[MySQL] LIMIT OFFSET ์„ฑ๋Šฅ ํŠœ๋‹

[์›๋ณธ ๋งํฌ]

๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฝ‘๋Š” API๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ๋ณดํ†ต LIMIT OFFSET์œผ๋กœ ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ฒ˜๋ฆฌ๋ฅผ ๋งŽ์ด ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ MySQL์—์„œ๋Š” ๋ฌด์ž‘์ • Limit Offset๋งŒ ์“ฐ๋‹ค๊ฐ€๋Š” ์„ฑ๋Šฅ์—์„œ ์†ํ•ด๋ฅผ ๋งŽ์ด ๋ณผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

์ •ํ™•ํžˆ๋Š”, ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ญ๋งŒ๊ฐœ ์ด์ƒ์œผ๋กœ ๋งŽ์€ ์ƒํƒœ์—์„œ OFFSET์ด ๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก ๋А๋ ค์ง€๋Š” ๋ฌธ์ œ์ธ๋ฐ, ๋‹ค๋ฅธ DB๋Š” ์–ด๋–ค์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

ํ•œ๋ฒˆ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๊ฒ ๋‹ค.

ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•œ ํ…Œ์ด๋ธ”์—๋Š” ์•ฝ 200๋ฐฑ๋งŒ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ƒํƒœ๋‹ค.

๊ทธ๋ƒฅ LIMIT OFFSET ์ฟผ๋ฆฌ๋ฅผ ํ•œ๋ฒˆ ๊ฑธ์–ด๋ณด๊ฒ ๋‹ค.

์•ฝ 5์ดˆ๊ฐ€ ๊ฑธ๋ ธ๋‹ค. ์ด๊ฑด ์›๋ž˜ ๋А๋ฆด๋งŒํ•œ ๊ฑฐ๋ผ์„œ ์ด์ •๋„๋Š” ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋‹ค.
์ด ์ƒํƒœ์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋‚˜

์˜คํ”„์…‹์ด ๋’ค๋กœ ๊ฐ€๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

์„ธ์ƒ์—. 5์ดˆ ๊ฑธ๋ฆฌ๋˜๊ฒŒ 18์ดˆ๊ฐ€ ๊ฑธ๋ ธ๋‹ค.
๊ฒŒ๋‹ค๊ฐ€ ๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก ์ ์  ๋” ๋А๋ ค์ง„๋‹ค.

์ด๊ฒŒ ์™œ ๊ทธ๋Ÿฐ๊ฐ€ ํ•˜๋ฉด,
์ด๋Ÿฌ๋ฉด ํ’€์Šค์บ”์„ ๋•Œ๋ฆฐ ๋‹ค์Œ์— ์ „๋ถ€ ์ •๋ ฌ์„ ํ•˜๊ณ , LIMIT OFFSET์œผ๋กœ ์ž๋ฅด๋Š”๋ฐ, ์ •๋ ฌ ๋‹จ๊ณ„์—์„œ ์„ฑ๋Šฅ ๋ถ€ํ•˜๊ฐ€ ์ƒ๋‹นํžˆ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด๊ฑธ ์ข€๋” ๋น ๋ฅด๊ฒŒ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๋ฐฉ๋ฒ•์€ ์˜์™ธ๋กœ ๊ฐ„๋‹จํ•˜๋‹ค.
๊ธฐ์กด ์ฟผ๋ฆฌ๋ฅผ ํ†ต์งธ๋กœ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๊ฐ์‹ธ๊ณ , ๋ปฅ ์กฐ์ธ ํ•œ๋ฒˆ ํ•ด์„œ UNIQUE KEY๋กœ ์ธ๋ฑ์Šค๋ฅผ ํƒ€๊ฒŒ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.

์ €๊ธฐ์„œ fake.id๋Š” UNIQUE KEY๋‹ค.
์ด๋Ÿฌ๋ฉด ์ด์ œ ๊ทธ๋ƒฅ ํ’€์Šค์บ”์ด ์•„๋‹ˆ๋ผ ํ’€ ์ธ๋ฑ์Šค ์Šค์บ”์„ ํƒœ์šฐ๊ฒŒ ๋ผ์„œ, ์ •๋ ฌ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ๋‹จ์ถ•๋œ๋‹ค. ์ธ๋ฑ์Šค๋กœ ๊ธ์–ด์˜ค๋Š” ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ ์ •๋ ฌ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ž, ์ด์ œ 8์ดˆ๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.

์—ฌ์ „ํžˆ ๋’ค๋กœ๊ฐˆ์ˆ˜๋ก ์กฐ๊ธˆ์”ฉ ๋А๋ ค์ง€๊ธด ํ•˜๋Š”๋ฐ, ๊ทธ ์ฐจ์ด๊ฐ€ ํ›จ์”ฌ ์ข์•„์ง„๋‹ค.

๋‹ค๋งŒ, ์ธ๋ฑ์Šค ์Šค์บ”์ด๋ž€๊ฒŒ ๋ฒ”์œ„๊ฐ€ ํฌ๋ฉด ํด์ˆ˜๋ก ๋น„ํšจ์œจ์ ์ด๋‹ค๋ณด๋‹ˆ ์ด๊ฒƒ๋„ ์ž„๊ณ„์ ์„ ๋„˜์–ด๊ฐ€๋ฉด ์˜คํžˆ๋ ค ๋А๋ ค์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.


์ฐธ์กฐ
https://elky84.github.io/2018/10/05/mysql/