๐ 1๏ธโฃ MariaDB์์ JSON ๋ฐ์ดํฐ ์ฒ๋ฆฌ**
๐ ๊ธฐ๋ณธ ๊ฐ๋
MariaDB๋ ์ ํต์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)์ด์ง๋ง, ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ์ฐ์ฑ ํ๋ณด๋ฅผ ์ํด JSON ๋ฐ์ดํฐ ํ์
๊ณผ ๊ด๋ จ ํจ์๋ค์ ์ง์ํจ.
๐ฏ ์ฃผ์ ๊ธฐ๋ฅ
๊ธฐ๋ฅ |
์ค๋ช
|
์์ |
์ค๋ฌด ํ |
JSON ๋ฐ์ดํฐ ํ์
์ง์ |
JSON ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ (MariaDB 10.2 ์ด์) |
JSON ์ปฌ๋ผ ํ์
|
JSON Validation ์์ โ ์๋ชป๋ ๊ตฌ์กฐ ์
๋ ฅ ์ฃผ์ |
JSON ํจ์ ์ ๊ณต |
JSON ๋ด๋ถ ๋ฐ์ดํฐ ์กฐํ ๋ฐ ์์ |
JSON_EXTRACT() , JSON_SET() |
ํจ์ ์ฐ์ฐ ๋น์ฉ ๋์ โ ์์ฃผ ์ฌ์ฉํ๋ ํ๋๋ ๊ฐ์ ์ปฌ๋ผ ์ถ์ฒ |
Full-Text Index + JSON |
JSON ๋ด๋ถ ๋ฌธ์์ด ๊ฒ์ ์ต์ ํ |
๋ก๊ทธ ๋ฐ์ดํฐ ๊ฒ์ |
๋จ, ์ ์ฒด JSON Index ๋ถ๊ฐ๋ฅ, ๋ถ๋ถ ๊ฒ์์ ํ์ ๋จ |
Virtual Column + Index |
JSON ํน์ ํค๋ฅผ ๊ฐ์ ์ปฌ๋ผํ ํ ์ธ๋ฑ์ฑ |
๊ฒ์ ์ฑ๋ฅ ๊ทน๋ํ |
๋ณ๊ฒฝ ์, Virtual Column ๋๊ธฐํ ์ฃผ์ |
๐ฌ ๋น์ ๋ณด๊ฐ: ์ ํต ์๋ฅํจ + ์ ์๋ฌธ์ ์์คํ
- MariaDB๋ ์๋ฅํจ์ฒ๋ผ ์๊ฒฉํ ์นธ๋ง์ด ์์(์ ํํ๋ ํ
์ด๋ธ) ๊ด๋ฆฌ.
- JSON์ ์์ ๋กญ๊ฒ ๋ถ์ํ์ผ๋ก ์ค๋ ์ ์๋ฌธ์ ํด๋.
- ์์ฃผ ๋ณด๋ ์ ๋ณด๋ ์ฑ
๊ฐํผ(Virtual Column + Index) ๊ฝ์๋๊ณ ๋น ๋ฅด๊ฒ ์ฐพ์๋ณด๊ธฐ.
โ๏ธ 2๏ธโฃ MariaDB vs NoSQL(MongoDB, Redis) ๋น๊ต
๐ ๋น๊ต ํ ๋ณด๊ฐ
ํญ๋ชฉ |
MariaDB |
MongoDB |
Redis |
๋ฐ์ดํฐ ๋ชจ๋ธ |
๊ด๊ณํ (Row & Column) + JSON ์ง์ |
๋ฌธ์ ์งํฅ (BSON ๊ธฐ๋ฐ, JSON ์ ์ฌ) |
Key-Value (๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ) |
์คํค๋ง |
๊ณ ์ ์คํค๋ง + JSON์ผ๋ก ์ผ๋ถ ์ ์ฐ์ฑ |
์คํค๋ง๋ฆฌ์ค, ํ๋ ์์ |
์คํค๋ง ์์ |
ACID ๋ณด์ฅ |
์๋ฒฝ ์ง์ |
์ต๊ทผ ACID ์ง์ ๊ฐํ (๋ฉํฐ-๋ํ๋จผํธ ํธ๋์ญ์
) |
ํธ๋์ญ์
์ ๋จ์ MULTI/EXEC (๋ถ๋ถ์ ๋ณด์ฅ) |
ํ์ฅ์ฑ |
์์ง ํ์ฅ (Scale-up) โ ์ฃผ๋ก ์๋ฒ ์คํ ์ฌ๋ฆผGalera ํด๋ฌ์คํฐ ํตํ ์ํ ํ์ฅ ๊ฐ๋ฅ |
์ํ ํ์ฅ (Sharding ๊ธฐ๋ณธ)๋๊ท๋ชจ ๋ถ์ฐ ํ๊ฒฝ์ ์ ํฉ |
์ํ ํ์ฅ (Cluster ์ง์) |
์ฃผ์ ํ์ฉ |
์ ํต ํธ๋์ญ์
, ๊ธ์ต, ERP, ๋ณต์กํ ์กฐ์ธ |
์ฝํ
์ธ , ๋ก๊ทธ, ๋น์ ํ ๋์ฉ๋ ๋ฐ์ดํฐ |
์บ์, ์ธ์
, ์ค์๊ฐ ์ฒ๋ฆฌ |
์ฅ์ |
SQL ์น์์ฑ, ๋ณต์ก ํธ๋์ญ์
์ฒ๋ฆฌ ๊ฐ๋ฅ |
์ ์ฐ ์คํค๋ง, ๋๊ท๋ชจ ๋ถ์ฐ |
์ด๊ณ ์ in-memory ์ฒ๋ฆฌ |
๋จ์ |
์คํค๋ง ๋ณ๊ฒฝ ๋ถํธ, ์ํ ํ์ฅ ํ๊ณ |
์กฐ์ธ ๋ณต์ก, ๊ด๊ณํ ์ฐ์ฐ ์ฝํจ |
์์์ฑ ์ฝํจ, ๋ณต์ก ๋ฐ์ดํฐ ๋ถ์ ํฉ |
์คํด ์ ๋ฆฌ:
- MariaDB๋ ์ํ ํ์ฅ(Scale-out)์ด ๋ถ๊ฐ๋ฅํ ๊ฑด ์๋. โ Galera Cluster, Spider Storage Engine, ์ค๋ฉ ์ํคํ
์ฒ ๊ฐ๋ฅ.
๋จ, NoSQL์ฒ๋ผ ๊ธฐ๋ณธ ๋ด์ฅ๋ Sharding ๊ธฐ๋ฅ์ ์๋. ๊ด๋ฆฌ ๋ณต์ก๋ โ
- MongoDB๋ ์ต๊ทผ์ ํธ๋์ญ์
์ผ๋ถ ์ง์ (4.0 ์ดํ) โ ๋จ, ๋ณต์กํ ๊ด๊ณํ ์ฐ์ฐ์ ์ฌ์ ํ ๋ถ๋ฆฌ.
๐ฌ ๋น์ ๋ณด๊ฐ: ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ผํฐ
์ญํ |
๋น์ |
์ค๋ช
|
MariaDB |
์ ํด์ง ์์, ์๊ฒฉํ ๊ณต๋ฌธ์ ๊ด๋ฆฌ ์ฌ๋ฌด์ |
๊ณ์ฝ์, ์ฌ๋ฌด์๋ฅ, ๊ท๊ฒฉํ๋ ๋ฌธ์์ ๊ฐํจ |
MongoDB |
๋ฏผ์ ์ ์ ์ผํฐ: ์ด๋ค ์๋ฅ๋ , ์ด๋ค ์์์ด๋ OK |
์ฝํ
์ธ , ๋ก๊ทธ, ๋ค์ํ ๋ฌธ์ ์์ ๋กญ๊ฒ ์์ฉ |
Redis |
ํฌ์คํธ์ ๋ฉ๋ชจ ๋ด๋น, ์๋ด๋ฌธ ๊ฒ์ํ |
๋น ๋ฅธ ํ์ธ ํ์ํ ๋, ์ ๋ณด๋ ์ผ์์ (์บ์, ์ธ์
) |
๐ 3๏ธโฃ ํ์ด๋ธ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฉ ๋ฐฉ์
๐ ์ ํ์ด๋ธ๋ฆฌ๋?
ํ ๊ฐ์ง DB๋ก ๋ชจ๋ ์๊ตฌ ์ถฉ์กฑ ๋ถ๊ฐ!
- ์ ํ โ MariaDB
- ๋น์ ํ โ MongoDB
- ์ด๊ณ ์/๋น๋ฒ ์กฐํ โ Redis
๐๏ธ ์ค์ ๊ตฌ์ฑ ์ ๋ต ๋ณด๊ฐ
๊ตฌ์ฑ |
์ค๋ช
|
ํ์ฉ ์์ |
์ฃผ์์ |
MariaDB + Redis |
์์ ๋ฐ์ดํฐ ๋ณด๊ด + ์บ์๋ก ์กฐํ ์๋ ํฅ์ |
์ํ ์ ๋ณด ์บ์, ๋ก๊ทธ์ธ ์ธ์
|
์บ์ ์ผ๊ด์ฑ ๋ฌธ์ , TTL ์ค์ |
MariaDB + MongoDB |
ํธ๋์ญ์
์ MariaDB, ์ฝํ
์ธ /๋ก๊ทธ๋ MongoDB |
ERP + ๋น์ ํ ๋ก๊ทธ ์์คํ
|
๋ฐ์ดํฐ ์ค๋ณต ๊ด๋ฆฌ ์ฃผ์ |
MariaDB + Redis + MongoDB |
ํธ๋์ญ์
, ์บ์, ๋ก๊ทธ ๋ชจ๋ ์ต์ ํ |
๋๊ท๋ชจ ํ๋ซํผ ์๋น์ค |
๋ฐ์ดํฐ ๋๊ธฐํ ์ ๋ต ํ์ |
๐ฌ ๋น์ ๋ณด๊ฐ: ์ข
ํฉ ํ์ ์ผํฐ
- MariaDB = ๋ณธ๊ด: ๋ฒ์ ๋ฌธ์, ์ฃผ๋ฏผ๋ฑ๋ก, ์ฌ์ ๊ด๋ จ ์๋ฅ ๋ด๋น (์ ํ์ฑ, ์ผ๊ด์ฑ)
- MongoDB = ๋ฏผ์์ฐฝ๊ตฌ: ๋ค์ํ ์์์ ์์ ์๋ฅ, ๋ฏผ์ ๋ด์ฉ ์์ ๋กญ๊ฒ ์ ์
- Redis = ์
๊ตฌ ์๋ด ๊ฒ์ํ: ์ค๋ ์ ์ฌ, ๊ธด๊ธ ์๋ด๋ฌธ, ๋ฐ๋ก ํ์ธ ํ์ ์ ๋ณด ์ ๊ณต (๋จ๊ธฐ ๋ณด๊ด)
๐ ๐ ์ ๋ฆฌ
๐ MariaDB์ NoSQL ๋น๊ต & ํ์ฅ์ฑ
๐ฆ 1. MariaDB์ JSON ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- โ
JSON ๋ฐ์ดํฐ ํ์
& ์ ์ฐ ์ ์ฅ
- โ
JSON ํจ์๋ก ๋ด๋ถ ๋ฐ์ดํฐ ํ์ฑ/์์
- โ
Virtual Column + Index โ ์ฑ๋ฅ ํฅ์
- โ
์ฃผ์: JSON Validation ์์ โ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ด๋ฆฌ ํ์
- ๐ฌ ์๋ฅํจ + ์ ์๋ฌธ์ ๊ด๋ฆฌ ์์คํ
๋น์
โ๏ธ 2. MariaDB vs MongoDB vs Redis
DB |
ํน์ง |
ํ์ฉ |
MariaDB |
๊ด๊ณํ, ACID ๊ฐ์ , JOIN/ํธ๋์ญ์
|
๊ธ์ต, ERP, ์ ํ ๋ฐ์ดํฐ |
MongoDB |
์คํค๋ง๋ฆฌ์ค, ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ |
๋ก๊ทธ, ์ฝํ
์ธ , ๋๊ท๋ชจ ๋ถ์ฐ |
Redis |
Key-Value, ์ธ๋ฉ๋ชจ๋ฆฌ ์ด๊ณ ์ ์ฒ๋ฆฌ |
์บ์, ์ธ์
, ์ค์๊ฐ ์ฒ๋ฆฌ |
๐ฌ ๊ณต๋ฌธ์ ๊ด๋ฆฌ, ๋ฏผ์ ์ฐฝ๊ตฌ, ์๋ด๋ฌธ ๊ฒ์ํ ๋น์ |
ย |
ย |
๐ 3. ํ์ด๋ธ๋ฆฌ๋ DB ํ์ฉ ๋ฐฉ์
- โ
MariaDB + Redis โ ์บ์ ์ฑ๋ฅ ํฅ์
- โ
MariaDB + MongoDB โ ์ ํ & ๋น์ ํ ๋ฐ์ดํฐ ๋ถ๋ฆฌ
- โ
์ข
ํฉ ์์คํ
: MariaDB + Redis + MongoDB ์กฐํฉ
- โ
๋ฐ์ดํฐ ์ผ๊ด์ฑ, ๋๊ธฐํ ์ ์ฑ
๋ช
ํํ
- ๐ฌ ์ข
ํฉ ํ์ ์ผํฐ ๋น์