๋ฉ”์‹ ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(2๋ถ€): "์ด์ต์„ ์œ„ํ•œ" ํŒŒํ‹ฐ์…”๋‹

์šฐ๋ฆฌ๋Š” ์„œ์‹ ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค๊ณ„ํ–ˆ์œผ๋ฉฐ XNUMX๋…„์ด ์ง€๋‚ฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ ๊ทน์ ์œผ๋กœ ์ด๋ฅผ ์ฑ„์šฐ๊ณ  ์žˆ์œผ๋ฉฐ ์ด์ œ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๊ธฐ๋ก, ๊ทธ๋ฆฌ๊ณ ... ๋ญ”๊ฐ€ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์‹ ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(2๋ถ€): "์ด์ต์„ ์œ„ํ•œ" ํŒŒํ‹ฐ์…”๋‹
๊ทธ๊ฑด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค ํ…Œ์ด๋ธ” ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉด ์ธ๋ฑ์Šค์˜ "๊นŠ์ด"๋„ ์ปค์ง‘๋‹ˆ๋‹ค. -๋Œ€์ˆ˜์ ์œผ๋กœ๋ผ๋„. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ด๋กœ ์ธํ•ด ์„œ๋ฒ„๋Š” ๋™์ผํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ช‡ ๋ฐฐ ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋ฅผ ์ฒ˜๋ฆฌ์ฒ˜์Œ๋ณด๋‹ค.

์—ฌ๊ธฐ๊ฐ€ ๊ตฌ์ถœํ•˜๋Ÿฌ ์˜ค๋Š” ๊ณณ์ด์•ผ ๋‹จ๋ฉดํ™”.

์šฐ๋ฆฌ๋Š” ์ƒค๋”ฉ(sharding), ์ฆ‰ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ธ๋ฑ์Šค๊ฐ€ "๋ถ€ํ’€์–ด์˜ค๋ฅด๋Š”" ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งค์ผ ์ƒˆ ์„œ๋ฒ„๋ฅผ ๊ฐ€๋™ํ•  ์—ฌ์œ ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฌธ์ œ๋Š” ๋” ์ด์ƒ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜์—ญ์— ์žˆ์ง€ ์•Š์„ ๊ฒƒ์ž„์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” "ํ•˜๋“œ์›จ์–ด์—์„œ" ํŒŒํ‹ฐ์…”๋‹์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํŠน์ • ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์ ‘๊ทผ ๋ฐฉ์‹ ์ž์ฒด(๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ "์Šฌ๋ผ์ด์Šค๋กœ ์ž˜๋ผ์•ผ"ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌํ•œ ์š•๊ตฌ๊ฐ€ ๋ฌด์—‡์œผ๋กœ ์ด์–ด์ง€๋Š”์ง€)๋ฅผ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋…

๋ชฉํ‘œ๋ฅผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ •์˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜, ๋‚ด์ผ, ๊ทธ๋ฆฌ๊ณ  XNUMX๋…„ ํ›„์—๋„ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—… ์ค‘์— PostgreSQL์ด ์ฝ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด๋– ํ•œ ๊ฒƒ๋„ ์‹œ๊ฐ„์ˆœ์œผ๋กœ ๋ˆ„์ ๋œ ๋ฐ์ดํ„ฐ (๋ฉ”์‹œ์ง€, ๋ฌธ์„œ, ๋กœ๊ทธ, ์•„์นด์ด๋ธŒ ๋“ฑ) ํŒŒํ‹ฐ์…”๋‹ ํ‚ค๋กœ ์ž์—ฐ์Šค๋Ÿฌ์šด ์„ ํƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋‚ ์งœ/์‹œ๊ฐ„. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๊ทธ๋Ÿฌํ•œ ์ด๋ฒคํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์ˆœ๊ฐ„.

์‚ฌ์šฉ์ž๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ "์ตœ์‹ " ๊ฒƒ๋“ค๋กœ๋งŒ ์ž‘์—…ํ•˜์„ธ์š” ๊ทธ๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ - ๊ทธ๋“ค์€ ์ตœ์‹  ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ณ , ์ตœ์‹  ๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค... ์•„๋‹ˆ์š”, ๋ฌผ๋ก  ์‹œ๊ฐ„์„ ๋” ๋’ค๋กœ ์Šคํฌ๋กคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ์ž‘์—…์€ ๊ฑฐ์˜ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ œ์•ฝ์œผ๋กœ ๋ณผ ๋•Œ ์ตœ์ ์˜ ๋ฉ”์‹œ์ง€ ์†”๋ฃจ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. "์ผ์ผ" ์„น์…˜ - ๊ฒฐ๊ตญ ์šฐ๋ฆฌ ์‚ฌ์šฉ์ž๋Š” "์˜ค๋Š˜"์ด๋‚˜ "์–ด์ œ"์— ๋‚˜์˜จ ๋‚ด์šฉ์„ ๊ฑฐ์˜ ํ•ญ์ƒ ์ฝ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜๋ฃจ ๋™์•ˆ ๊ฑฐ์˜ ํ•œ ๋ถ€๋ถ„์—์„œ๋งŒ ์“ฐ๊ณ  ์ฝ๋Š”๋‹ค๋ฉด, ์ด๋Š” ๋˜ํ•œ ์šฐ๋ฆฌ์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์™€ ๋””์Šคํฌ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ - ํ…Œ์ด๋ธ” ์ „์ฒด์˜ "ํฌ๊ณ  ๋‘๊บผ์šด" ์ธ๋ฑ์Šค์™€ ๋‹ฌ๋ฆฌ ๋ชจ๋“  ์„น์…˜ ์ธ๋ฑ์Šค๋Š” RAM์— ์‰ฝ๊ฒŒ ๋งž๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„

์ผ๋ฐ˜์ ์œผ๋กœ ์œ„์—์„œ ๋งํ•œ ๋ชจ๋“  ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ง€์†์ ์ธ ์ด์ต์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‹ฌ์„ฑ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—”ํ„ฐํ‹ฐ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ถ„ํ• ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด ์—ฐ๊ด€๋œ ์—”ํ„ฐํ‹ฐ๋ฅผ "๋ณผ" ํ•„์š”๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค..

๋ฉ”์‹œ์ง€, ํ•ด๋‹น ์†์„ฑ ๋ฐ ํ”„๋กœ์ ์…˜

๋ฉ”์‹œ์ง€๋ฅผ ๋‚ ์งœ๋ณ„๋กœ ์ž˜๋ผ๋‚ด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€์— ์ข…์†๋œ ์—”ํ„ฐํ‹ฐ ์†์„ฑ(์ฒจ๋ถ€ ํŒŒ์ผ, ์ˆ˜์‹ ์ž ๋ชฉ๋ก)์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๋„ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ”์‹œ์ง€ ๋‚ ์งœ๋ณ„๋กœ.

์šฐ๋ฆฌ์˜ ์ผ๋ฐ˜์ ์ธ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋Š” ๋ฉ”์‹œ์ง€ ๋ ˆ์ง€์Šคํ„ฐ(์ฝ์ง€ ์•Š์Œ, ์ˆ˜์‹ , ๋ชจ๋‘)๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ณด๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฉ”์‹œ์ง€ ๋‚ ์งœ๋ณ„๋กœ ๋ถ„ํ• ํ•˜๋Š” ๋ฐ "๋Œ์–ด๋“ค์ด๋Š”" ๊ฒƒ๋„ ๋…ผ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

๋ฉ”์‹ ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(2๋ถ€): "์ด์ต์„ ์œ„ํ•œ" ํŒŒํ‹ฐ์…”๋‹

์ˆ˜์‹ ์ž, ํŒŒ์ผ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋“ฑ ๋ชจ๋“  ํ…Œ์ด๋ธ”์— ๋ถ„ํ•  ํ‚ค(๋ฉ”์‹œ์ง€ ๋‚ ์งœ)๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ์ž์ฒด์— ์ถ”๊ฐ€ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ๊ธฐ์กด DateTime์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์Šค๋ ˆ๋“œ

์—ฌ๋Ÿฌ ๋ฉ”์‹œ์ง€์— ํ•˜๋‚˜์˜ ์ฃผ์ œ๋งŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๋ชจ๋ธ์—์„œ ์ด๋ฅผ "์ž๋ฅด๊ธฐ" ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฉฐ ๋‹ค๋ฅธ ๊ฒƒ์— ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ํ†ต์‹ ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฉ”์‹œ์ง€ ๋‚ ์งœ โ€” ์ฆ‰, ์‹ค์ œ๋กœ ์ฃผ์ œ๊ฐ€ ์ฐฝ์กฐ๋˜๋Š” ์ˆœ๊ฐ„์ž…๋‹ˆ๋‹ค.

๋ฉ”์‹ ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(2๋ถ€): "์ด์ต์„ ์œ„ํ•œ" ํŒŒํ‹ฐ์…”๋‹

๋ชจ๋“  ํ…Œ์ด๋ธ”(์ฃผ์ œ, ์ฐธ๊ฐ€์ž)์— ๋ถ„ํ•  ํ‚ค(์ฃผ์ œ ๋‚ ์งœ)๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด์ œ ๋™์‹œ์— ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

  • ํ•ด๋‹น ์ฃผ์ œ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€๋Š” ์–ด๋Š ์„น์…˜์—์„œ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ?
  • ๋ฉ”์‹œ์ง€์˜ ์ฃผ์ œ๋ฅผ ์–ด๋Š ์„น์…˜์—์„œ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฌผ๋ก  ๋ชจ๋“  ์„น์…˜์—์„œ ๊ณ„์† ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ๋งค์šฐ ์Šฌํ”„๊ณ  ๋ชจ๋“  ์Šน๋ฆฌ๋ฅผ ๋ฌดํšจํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •ํ™•ํžˆ ์–ด๋””๋ฅผ ๋ด์•ผ ํ• ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด ์„น์…˜์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ์  ๋งํฌ/ํฌ์ธํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ๋ฉ”์‹œ์ง€์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ์ฃผ์ œ ๋‚ ์งœ ํ•„๋“œ
  • ์ฃผ์ œ์— ์ถ”๊ฐ€ํ•˜์ž ๋ฉ”์‹œ์ง€ ๋‚ ์งœ ์„ค์ • ์ด ๋Œ€์‘(๋ณ„๋„์˜ ํ…Œ์ด๋ธ” ๋˜๋Š” ๋‚ ์งœ ๋ฐฐ์—ด์ผ ์ˆ˜ ์žˆ์Œ)

๋ฉ”์‹ ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(2๋ถ€): "์ด์ต์„ ์œ„ํ•œ" ํŒŒํ‹ฐ์…”๋‹

๊ฐ ๊ฐœ๋ณ„ ์„œ์‹ ์˜ ๋ฉ”์‹œ์ง€ ๋‚ ์งœ ๋ชฉ๋ก์€ ๊ฑฐ์˜ ์ˆ˜์ •๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ(๊ฒฐ๊ตญ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” ์ธ์ ‘ํ•œ 1~2์ผ์— ํ•ด๋‹นํ•จ) ์ด ์˜ต์…˜์— ์ค‘์ ์„ ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋Š” ํŒŒํ‹ฐ์…”๋‹์„ ๊ณ ๋ คํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ์ทจํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”: RU, ํ…Œ์ด๋ธ”/ํ•„๋“œ ์ด๋ฆ„์— ํ‚ค๋ฆด ๋ฌธ์ž๊ฐ€ ์‹ซ๋‹ค๋ฉด ๋ณด์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

-- ัะตะบั†ะธะธ ะฟะพ ะดะฐั‚ะต ัะพะพะฑั‰ะตะฝะธั
CREATE TABLE "ะกะพะพะฑั‰ะตะฝะธะต_YYYYMMDD"(
  "ะกะพะพะฑั‰ะตะฝะธะต"
    uuid
      PRIMARY KEY
, "ะขะตะผะฐ"
    uuid
, "ะ”ะฐั‚ะฐะขะตะผั‹"
    date
, "ะะฒั‚ะพั€"
    uuid
, "ะ”ะฐั‚ะฐะ’ั€ะตะผั" -- ะธัะฟะพะปัŒะทัƒะตะผ ะบะฐะบ ะดะฐั‚ัƒ
    timestamp
, "ะขะตะบัั‚"
    text
);

CREATE TABLE "ะะดั€ะตัะฐั‚_YYYYMMDD"(
  "ะ”ะฐั‚ะฐะกะพะพะฑั‰ะตะฝะธั"
    date
, "ะกะพะพะฑั‰ะตะฝะธะต"
    uuid
, "ะŸะตั€ัะพะฝะฐ"
    uuid
, PRIMARY KEY("ะกะพะพะฑั‰ะตะฝะธะต", "ะŸะตั€ัะพะฝะฐ")
);

CREATE TABLE "ะคะฐะนะป_YYYYMMDD"(
  "ะ”ะฐั‚ะฐะกะพะพะฑั‰ะตะฝะธั"
    date
, "ะคะฐะนะป"
    uuid
      PRIMARY KEY
, "ะกะพะพะฑั‰ะตะฝะธะต"
    uuid
, "BLOB"
    uuid
, "ะ˜ะผั"
    text
);

CREATE TABLE "ะ ะตะตัั‚ั€ะกะพะพะฑั‰ะตะฝะธะน_YYYYMMDD"(
  "ะ”ะฐั‚ะฐะกะพะพะฑั‰ะตะฝะธั"
    date
, "ะ’ะปะฐะดะตะปะตั†"
    uuid
, "ะขะธะฟะ ะตะตัั‚ั€ะฐ"
    smallint
, "ะ”ะฐั‚ะฐะ’ั€ะตะผั"
    timestamp
, "ะกะพะพะฑั‰ะตะฝะธะต"
    uuid
, PRIMARY KEY("ะ’ะปะฐะดะตะปะตั†", "ะขะธะฟะ ะตะตัั‚ั€ะฐ", "ะกะพะพะฑั‰ะตะฝะธะต")
);
CREATE INDEX ON "ะ ะตะตัั‚ั€ะกะพะพะฑั‰ะตะฝะธะน_YYYYMMDD"("ะ’ะปะฐะดะตะปะตั†", "ะขะธะฟะ ะตะตัั‚ั€ะฐ", "ะ”ะฐั‚ะฐะ’ั€ะตะผั" DESC);

-- ัะตะบั†ะธะธ ะฟะพ ะดะฐั‚ะต ั‚ะตะผั‹
CREATE TABLE "ะขะตะผะฐ_YYYYMMDD"(
  "ะ”ะฐั‚ะฐะขะตะผั‹"
    date
, "ะขะตะผะฐ"
    uuid
      PRIMARY KEY
, "ะ”ะพะบัƒะผะตะฝั‚"
    uuid
, "ะะฐะทะฒะฐะฝะธะต"
    text
);

CREATE TABLE "ะฃั‡ะฐัั‚ะฝะธะบะขะตะผั‹_YYYYMMDD"(
  "ะ”ะฐั‚ะฐะขะตะผั‹"
    date
, "ะขะตะผะฐ"
    uuid
, "ะŸะตั€ัะพะฝะฐ"
    uuid
, PRIMARY KEY("ะขะตะผะฐ", "ะŸะตั€ัะพะฝะฐ")
);

CREATE TABLE "ะ”ะฐั‚ั‹ะกะพะพะฑั‰ะตะฝะธะนะขะตะผั‹_YYYYMMDD"(
  "ะ”ะฐั‚ะฐะขะตะผั‹"
    date
, "ะขะตะผะฐ"
    uuid
      PRIMARY KEY
, "ะ”ะฐั‚ะฐ"
    date
);

๊ฝค ๋งŽ์€ ๋ˆ์„ ์ ˆ์•ฝํ•˜์„ธ์š”

์Œ, not์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–จ๊นŒ์š”? ํด๋ž˜์‹ ๋‹จ๋ฉด ์˜ต์…˜ ํ•„๋“œ ๊ฐ’์˜ ๋ถ„ํฌ(ํŠธ๋ฆฌ๊ฑฐ ๋ฐ ์ƒ์† ๋˜๋Š” PARTITION BY๋ฅผ ํ†ตํ•ด)์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์˜ "์ˆ˜๋™"์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„ํ•  ํ‚ค ๊ฐ’์ด ์ด๋ฏธ ํ…Œ์ด๋ธ” ์ž์ฒด ์ด๋ฆ„์— ์ €์žฅ๋˜์–ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ ๋‹น์‹ ์ด ๊ทธ๋ ‡๋‹ค๋ฉด ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋„ˆ๋ฌด ๊ฑฑ์ •๋˜์‹œ๋‚˜์š”?, ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋Ÿฌํ•œ "์ถ”๊ฐ€" ํ•„๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ํŠน์ • ํ…Œ์ด๋ธ”์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์ด ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์„น์…˜์˜ ๋ชจ๋“  ์„ ํƒ ์‚ฌํ•ญ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธก์œผ๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€