SQL๊ณผ NoSQL์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์๊ณผ ํ์ฅ ๋ฐฉ์์ด๋ค.
| ํญ๋ชฉ | SQL (RDB) | NoSQL |
|---|---|---|
| ๋ฐ์ดํฐ ๊ตฌ์กฐ | ํ ์ด๋ธ(Row, Column) | Key-Value, Document, Graph ๋ฑ |
| ์คํค๋ง | ๊ณ ์ (Schema) | ์ ์ฐ(Schema-less) |
| ๊ด๊ณ(Join) | ๊ฐ๋ ฅ | ์ ํ์ |
| ํธ๋์ญ์ | ACID ์ง์ | ์๋์ ์ผ๋ก ์ฝํจ |
| ํ์ฅ | Scale-Up(์์ง ํ์ฅ) | Scale-Out(์ํ ํ์ฅ) |
| ๋ฐ์ดํฐ ์ค๋ณต | ์ต์ํ(์ ๊ทํ) | ํ์ฉ(๋น์ ๊ทํ) |
| ๋ํ DB | MySQL, PostgreSQL | MongoDB, Redis, Cassandra |
| ์ฉ๋ | ๊ธ์ต, ์ฃผ๋ฌธ, ํ์ | ๋ก๊ทธ, ์บ์, ์ฑํ , ๋์ฉ๋ ๋ฐ์ดํฐ |
SQL์ ๊ด๊ณ์ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ์ค์ํ๋ ํ ์ด๋ธ ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๊ณ , NoSQL์ ์ ์ฐํ ์คํค๋ง์ ๋์ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. SQL is a table-based database that focuses on maintaining relationships and ensuring data consistency through structured schemas and ACID transactions. In contrast, NoSQL is a non-relational database that offers flexible schemas and high scalability, making it suitable for handling large volumes of data and distributed systems.
Valkey๋ Redis 7.2๋ฅผ ํฌํฌ(Fork)ํ์ผ๋, ์ด์์ ์ง์์ฑ๊ณผ ์ฑ๋ฅ ์ต์ ํ ๋ฐฉํฅ์์ ์ฐจ์ด๊ฐ ๋ฒ์ด์ง๊ณ ์๋ค.
| ๋น๊ต ํญ๋ชฉ | Valkey (Linux Foundation) | Redis (Redis Ltd.) |
|---|---|---|
| ๋ผ์ด์ ์ค | BSD 3-Clause (์์ ์คํ์์ค) | RSALv2 / SSPLv1 (์ ์ฝ ์์) |
| ๊ฑฐ๋ฒ๋์ค | ์ปค๋ฎค๋ํฐ ๋ฐ ๋น ํ ํฌ(AWS, Google ๋ฑ) ์ฐํฉ | ๋จ์ผ ๊ธฐ์ (Redis Ltd.) ์ค์ฌ |
| I/O ๋ชจ๋ธ | Aggressive Multi-threading | ๋ณด์์ Multi-threading (6.0+) |
| ํ์ฅ์ฑ | ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ์ฝ์ด(Core)์ ํตํฉํ๋ ๋ฐฉํฅ | ๊ณ ๊ธ ๊ธฐ๋ฅ์ Enterprise ์ค์ฌ, ๋ชจ๋ํ ๊ฒฝํฅ |
- ๋ฉํฐ ์ค๋ ๋ฉ์ ์ ๊ทน์ ํ์ฉ (Aggressive Multi-threading) Redis: 6.0๋ถํฐ I/O(๋คํธ์ํฌ ์ฝ๊ธฐ/์ฐ๊ธฐ) ์ฒ๋ฆฌ์๋ง ์ ํ์ ์ผ๋ก ๋ฉํฐ ์ค๋ ๋๋ฅผ ๋์ Valkey: I/O๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ (Slot Migration) ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ๋ฑ ๋ถํ๊ฐ ํฐ ์์ ์ ๋ฉํฐ ์ค๋ ๋๋ฅผ ๋ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ฉ์ธ ์ค๋ ๋์ Blocking์ ์ต์ํ
- ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ต์ ํ (Memory Efficiency) Valkey: jemalloc ๋ฑ ๊ณ ์ฑ๋ฅ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์์ ์ต์ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ์ ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํํธํ(Fragmentation)๋ฅผ ์ค์ด๊ณ ๋์ผ ์คํ ๋๋น ๋ ๋์ ์ฒ๋ฆฌ๋(QPS)์ ํ๋ณด