๋น๋๊ธฐ๋ฅผ ํ์ฉํ ํ ์ด๋ธ ํ ์ค์บ ์ฑ๋ฅ ํ ์คํธ.
ํ ์ด๋ธ ํ ์ค์บ์ ํ ์ด๋ธ์ ๋ชจ๋ row๋ฅผ ์กฐํํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋์ง ์์ต๋๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๊ฐ ๋ง๋๋ผ๋
๋ถํ
๊ณผ๋น๋๊ธฐ๋ฅผ ํ์ฉํ ๋ณ๋ ฌ ์ฒ๋ฆฌ
๋ฅผ ํ๋ฉด ํน์ ์ํฉ์์๋ ๊ฝค ์ข์ ์ฑ๋ฅ์ ๋ผ ์ ์์ต๋๋ค.
์ด๋ฒคํธ ํ๋ก์ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์๋ฆผ ์ก์ ์ ๋ณ๋์ ์์คํ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํ์ง ์์ต๋๋ค.
- ์๋ฆผ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค.
- ์ ์ฒด ์ฌ์ฉ์๋ 2,000 ๋ง ๋ช ์ด๋ฉฐ, ์๋ฆผ ์์ ์ ๋์ํ ์ฌ์ฉ์์๊ฒ๋ง ์๋ฆผ์ ์ ์กํ๋ค.
- ๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์ /๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ, ํ
์ด๋ธ ํ ์ค์บ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ row๋ฅผ ์ฝ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก, ๋น๋๊ธฐ
๋ฅผ ํ์ฉํด ์ด๋ฅผ ๊ฐ์ ํ๋ค.
- ๋น๋๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
- ๋ชจ๋ํฐ๋ง์ ํตํด ์์ ์ฌ์ฉ๋ฅ ์ ์ฒดํฌํ๋ค.
๋ฉ์ธ์ง ํ(Message Queue)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์๋์น ์๊ฒ ํ์คํฌ๊ฐ ์ ์ค๋๋ ๊ฒฝ์ฐ ๊ฐ ๋ฐ์ํ๋ค. ๋ฉ์์ง๊ฐ ์ ์ค๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ๋๋นํ ์ ์๋๋ก ํ๋ค.
- ๋ฉ์์ง ์ ์ค์ ๋๋นํ๋ค.
- ๋ฉ์์ง ํ๋ ์ด๋ค ๊ฒ์ ์ฌ์ฉํด๋ ์๊ด์๋ค.
- ์ธ๋ถ ๋ฉ์์ง ์์คํ ์ ๋์ ํ์ ์, ์ฑ๋ฅ ๋ณํ๋ฅผ ์ธก์ ํ๋ค.
์์ด๋์ด๋ ๋ถํ
๊ณผ ๋น๋๊ธฐ๋ฅผ ํ์ฉํ ๋ณ๋ ฌ ์ฒ๋ฆฌ
์
๋๋ค.
- ๋ถํ
- ๋น๋๊ธฐ๋ฅผ ํ์ฉํ ๋ณ๋ ฌ ์ฒ๋ฆฌ
๋จผ์ ํ๋์ ํฐ ํ์คํฌ๋ฅผ ์ ์ ํ ๋จ์(chunk)๋ก ๋ถํ ํฉ๋๋ค.
๊ฐ ํ์คํฌ๋ ์์ ์ด ์ฒ๋ฆฌํ ์์
์ ์์/๋์ ์ ์๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์ค๋ณต ์ฒ๋ฆฌ๋ฅผ ๋ฐฉ์ง
ํ๋ฉฐ, ์ธ๋ฑ์ค(Index)๋ฅผ ํ์ฉ
ํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ดํ ๊ฐ ํ์คํฌ๋ฅผ ๋น๋๊ธฐ๋ฅผ ํตํ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌ
ํฉ๋๋ค.
2,000๋ง ๊ฑด ์ฒ๋ฆฌ ์ 1๋ถ ~ 1๋ถ 45์ด.
# ์ฝ, 1๋ถ 31์ด(91.16)
127.0.0.1:6379> get time::string::startTime
"1710619193857"
127.0.0.1:6379> get time::string::endTime
"1710619285018"
# ์ฝ 1๋ถ 26์ด(86.45)
127.0.0.1:6379> get time::string::startTime
"1710619455453"
127.0.0.1:6379> get time::string::endTime
"1710619541899"
# ์ฝ 1๋ถ 38์ด(98.73)
127.0.0.1:6379> get time::string::startTime
"1710619665364"
127.0.0.1:6379> get time::string::endTime
"1710619764089"
ํ์คํฌ ์คํ ์ค ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ ๋์ ๋, ์ด๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ์์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 2,000๋ง ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ๋ฐ์กํ๋ ๋์ค ์๋ก์ด ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ ํ๋ค๋ฉด ์ด๋ฅผ ๋์ฒํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๋ก์ง์ด ๋๋ ํ, ์๋ก ์ถ๊ฐ๋ ์ฌ์ฉ์๋ค์ ๋ณ๋์ ๋ก์ง์ผ๋ก ์ฒ๋ฆฌํด์ค์ผ ํฉ๋๋ค.
interface UserRepository : JpaRepository<User, Long> {
@Query("SELECT u FROM user u WHERE u.id > maxUserId")
fun findByIdOver(maxUserId: Long): List<User>
}
๋ํ ์ด ์ธ์๋ ์ฐ๋ ๋ ํ ๊ฐ์ ์ค์ , ์ปค๋ฅ์ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง ๋ฑ์ ์ถ๊ฐ ์ด์๊ฐ ์์ต๋๋ค. ์์ธ ๋ด์ฉ์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ์กฐํด์ฃผ์ธ์.