๐Ÿ“ˆ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๊ฐœ์„ : No Offset์„ ํ™œ์šฉํ•œ ํŽ˜์ด์ง€๋„ค์ด์…˜

๊ฐœ์š”

๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ ๋“ค ํ•œ๋‹ค. ์ตœ๊ทผ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ์ ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ „ํ†ต์ ์ธ ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐฉ์‹ ๋Œ€์‹  โ€œNo Offsetโ€ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ ์ž ํ–ˆ๋‹ค.

๊ธฐ์กด ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐฉ์‹

๊ธฐ์กด ๋ฐฉ์‹์€ OFFSET๊ณผ LIMIT์„ ์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ, OFFSET์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ๋ณด์ž:

SELECT *
FROM data_table
ORDER BY id ASC
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY;

์ด ์ฟผ๋ฆฌ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค OFFSET์„ ์ฆ๊ฐ€์‹œ์ผœ์•ผ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค. OFFSET์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์Šค์บ”ํ•ด์•ผ ํ•  ๋ ˆ์ฝ”๋“œ ์ˆ˜๊ฐ€ ๋งŽ์•„์ ธ, ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

No Offset ๋ฐฉ์‹ ์ ์šฉ

No Offset ๊ธฐ๋ฒ•์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ OFFSET์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ์กฐํšŒ๋œ ๋ ˆ์ฝ”๋“œ์˜ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

SELECT *
FROM data_table
WHERE id > #{lastId}
ORDER BY id ASC
FETCH NEXT #{limit} ROWS ONLY;
  • #{lastId}: ์ด์ „ ํŽ˜์ด์ง€์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์กฐํšŒ๋œ ๋ ˆ์ฝ”๋“œ์˜ ID.
  • #{limit}: ํ•œ ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•  ๋ ˆ์ฝ”๋“œ ์ˆ˜. ์ด ์ฟผ๋ฆฌ๋Š” OFFSET์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ธ๋ฑ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” id๊ฐ€ #{lastId}๋ณด๋‹ค ํฐ ๋ ˆ์ฝ”๋“œ๋งŒ ์กฐํšŒํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ์—์„œ๋Š” ์ถ”๊ฐ€๋กœ lastId๋ฅผ ์ „๋‹ฌํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค.


ยฉ 2022. All rights reserved.

Powered by Hydejack v9.1.6