์™œ Column-Oriented DBMS์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ์„๊นŒ?

  • ๊ธฐ์กด์˜ Relational DBMS๋Š” Rowํ˜•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

Row-Oriented DBMS๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ• ๊นŒ?

  • ์ฃผ๋กœ Row-Value ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

์‹ค์ œ๋กœ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐํŒŒ์ผ ๋ชจ์Šต์€?

  • ์ผ๋ ฌ๋กœ ์ €์žฅ๋œ ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Row-Value์˜ ์˜คํ”„์…‹์€ Value์˜ ์ž๋ฃŒ๊ตฌ์กฐ์— ์˜์กด์ ์ด๋‹ค.
    • 32bit์˜ Integer,64bit์˜ Integer, String๋“ฑ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํฌ๊ธฐ์˜ ์ด ํ•ฉ์‚ฐ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์˜คํ”„์…‹์„ ๊ฒฐ์ •ํ•œ๋‹ค.

์œ„ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฝ๊ธฐ ์œ„ํ•ด์„ ?

  • ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ Position์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ตฌํ•ด์ง„ Position์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ• ๊นŒ?

ํ˜„์‹ค์„ธ๊ณ„์—์„œ๋Š” ๊ทธ๋ฆฌ ์‰ฝ์ง€ ์•Š๋‹ค.

  • varchars๋ผ๋Š” ํƒ€์ž…์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋งค์šฐ ๋‹ค์–‘ํ•œ value์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋Š” ๊ณง Position์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๋ฉฐ ๋น ๋ฅด๊ฒŒ Record๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ ๋‹ค.

์œ„ ๋ฐฉ๋ฒ•์„ ์กฐ๊ธˆ ๊ฐœ์„ ํ•ด๋ณด๋ฉด?

  • value๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋ถ„์˜ ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅ ์ฃผ์†Œ๋ฅผ values์— ๋‹ด๋Š” ํ˜•์‹์ด๋‹ค.
  • ์œ„ ๋ฐฉ๋ฒ•์œผ๋กœ Position์„ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๋ถ„์˜ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•œ ๋‹จ์ ์ด ์žˆ๋‹ค.

Row-Oriented๋ฅผ ์ •๋ฆฌํ•˜๋ฉด

  • ์žฅ์ 
    • ํ•˜๋‚˜์˜ Row ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œํ• ๋•Œ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ข‹๋‹ค.
    • ํ•˜๋‚˜์˜ Row์˜ ๋Œ€๋ถ€๋ถ„์˜ ์ปฌ๋Ÿผ์„ ์ฝ์–ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ Read/Write๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋‹จ์ 
    • ๋ชจ๋“  Row๋ฅผ ์ฝ๋Š” ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ Column๊ฐ’์„ ๋‹ค ์ฝ์–ด์•ผ ํ•œ๋‹ค.
    • Page์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ณต๊ฐ„๊นŒ์ง€ ์ฝ์–ด์•ผ ํ•œ๋‹ค.

Example

  • c1์ด๋ผ๋Š” ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • ์šฐ๋ฆฌ๋Š” 2๋ฒˆ์งธ ํŽ˜์ด์ง€๊นŒ์ง€ ์ฝ์–ด์•ผ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์šฐ๋ฆฌ๋Š” 1 Read๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Column Oriented DBMS๊ฐ€ ๋“ฑ์žฅํ–ˆ๋‹ค.

Column Oriented DBMS๋ž€?

  • Rowํ˜•์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋Œ€์‹  Column์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ๋ชจ๋“  Column๋“ค์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋‹ค๋ค„์ง€๋ฉฐ Column๋ณ„๋กœ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.
  • Column๋ณ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ธฐ๋•Œ๋ฌธ์— ์••์ถ•์—๋„ ๋†’์€ ํšจ์œจ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

Row Oriented vs Column Oriented

  • ์šฐ๋ฆฌ๊ฐ€ ํ‰๊ท  ๊ฐ€๊ฒฉ์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด?
    • Row Oriented๋Š” ๋ชจ๋“  Row๋ฅผ ์กฐํšŒํ•ด์•ผ๋งŒ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    • ํ•˜์ง€๋งŒ Column Oriented๋Š” Price ์ปฌ๋Ÿผ๋งŒ ์กฐํšŒํ•ด๋„ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

ํ•ญ์ƒ Column Oriented๊ฐ€ ์ข‹์„๊นŒ?

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

Reference