- Redis
- mysql vs. mariadb
- nosql vs. RDMS
평소 궁금했던 개념들을 정리해보려고 한다.
각각 사용해 본 경험으로 적은 것은 아니니 참고..바랍니다.
Redis
레디스의 가장 큰 특징은 데이터들이 주 메모리에 저장되는 것이다.
- 그래서 가볍고 빠르다. 디스크에서 가져오는 것보다 메모리에서 가져오는 것이 훨씬 빠르기 때문에
또한 key-value 형태로 저장된다.
한줄로 정리하자면, 시스템 메모리를 사용하는 key-value 데이터 스토어이다.
이걸 어디에 쓰느냐! 캐싱, 세션관리 같은 곳에 사용해 속도를 높일 수 있다.
따라서 보조 데이터베이스로 사용하면서 서비스 속도를 높이는 데 사용할 수 있다.
MySQL vs. MariaDB
mysql 개발자들이 나가서 mariadb를 만들었다... 이런 얘기까지는 들었는데 그래서 도대체 무슨 차이가 있는 건데!!
가장 첫 번째로 들은 차이점은 유료, 무료였다.
mysql은 유료고 mariadb는 무료다. 반은 맞았고 반은 틀렸다.
mysql도 충분히 무료로 사용할 수 있으며 상용지원이 필요할 경우에만 MySQL Enterprise Edition을 선택하면 된다.
속도와 성능 측면에서 MariaDB가 조금 더 빠르긴 하다고 한다.
MariaDB는 MySQL와 호환된다.
그렇다면 어떻게 선택을 해야 하는 걸까.
사실 별차이가 없다고 생각한다. 개인 프로젝트를 하는 경우 어떤 것을 써도 상관이 없을 거 같고,
다만 MySQL이 오라클에 인수되어 오픈소스인 MariaDB가 조금 더 정책적으로 자유로운 느낌이 있다.
또한 AWS에서 라이센스 비용에 영향을 받아 가격이 더 높다고 한다. 실제 비교해 봤을 때 좀 차이가 났다.
따라서 당연한 말이지만 어떤 프로젝트에 어떤 목적을 가지고 사용하느냐에 따라 달라질 거 같다.
NoSQL vs. RDMS
가장 큰 차이점은 이름에 있을 거 같다.
RDMS (relational database management system)는 relation이 있다. 즉 structure가 있다.
하지만 nosql은 structure가 없다. 따라서 더 유연하다.
RDMS는 데이터 일관성을 보장하므로 금융시스템이나 전자 상거래에서 쓰인다.
하지만 데이터 구조가 고정적이라 유연성이 떨어지고 수평확장(Sharding) 이 어렵다.
NoSQL은 아까 말한 Redis도 해당된다. Key-value, document, column, graph store 같이 다양한 형태를 지원하며
수평확장이 용이하다. 하지만 데이터 일관성 보장이 되지 않는다. 빅데이터, 실시간 애플리케이션 같이 유연성과 빠른 확장이 필요한 경우에 쓴다고 한다.
RDMS가 우세이긴 하나 NoSQL도 높은 성장률을 보이고 있으며 수업시간에 뭐 결국 RDMS가 이길 거다라는 아주 개인적인 말을 듣긴 했지만 각각의 프로젝트 특성에 맞게 선택하면 되겠다.
'TIL' 카테고리의 다른 글
TIL - 스프링, 자연어처리 (2) | 2025.01.03 |
---|---|
TIL - 풀스택 GPT (0) | 2025.01.02 |
Flask SQLAlchemy ORM 개발시작 (0) | 2024.11.22 |
java sort comperator (1) | 2024.11.20 |
MariaDB ERROR 발생 (0) | 2024.11.18 |