티스토리 뷰
MySQL
90년대 중반에 개발된 MySQL은 시장에서 사용할 수 있는 최초의 오픈 DB중 하나이며 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)이다. MySQL은 단순 쿼리 처리 성능이 어떤 제품보다 압도적이며 이미 오래 사용되어 왔기 때문에 성능과 신뢰성 등에서 꾸준히 개선되어 온 것도 장점이다. 또한 MySQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원하고 C언어, C++, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공하고 있다.
MySQL은 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용할 수 있으며, 특히 PHP와 함께 웹 개발에 자주 사용된다. 그러나 MySQL은 오픈 소스 라이센스를 따르기는 하지만, 상업적으로 사용할 때는 상업용 라이센스를 구입해야만 한다.
→ 상업적이라는 게 무엇일까? 밑에 MySQL 라이센스 유료 참고
MariaDB
발전하던 MySQL이 2010년에 썬마이크로시스템즈와 오라클이 합병되면서 많은 MySQL 개발자들은 썬마이크로시스템즈을 떠나며 본인만의 프로젝트를 진행하게 된다. 이 중 MySQL의 창시자인 몬티 와이드니어가 만든 프로젝트가 바로 MariaDB이다.
MariaDB는 MySQL 데이터베이스 시스템을 기반으로 fork한 서비스로 MySQL의 개선된 버전이다. 그래서 MariaDB와 MySQL의 호환성은 매우 높다. 또한 MySQL에서 찾을 수 없는 수많은 내장된 강력한 기능과 많은 유용성, 보안 및 성능 개선사항이 함께 제공된다.
어떤 RDS DB를 사용하는 것이 적절할까?
많은 RDS에는 MySQL, MariaDB, PostgreSQL 중에 고르는 것이 좋다. 이유는 두 가지이다.
- 가격
- Amazon Aurora(오로라) 교체 용이성
RDS의 가격은 라이센스 비용 영향을 받는다. 상용 DB인 MySQL이 오픈소스인 MariaDB, PostgreSQL보다는 동일 사양 대비 가격이 더 높다. 프리티어 기간이 지나면 비용을 지불하면서 RDS를 사용해야하므로 미리 비용에 관련해 생각해 볼 필요가 있다.
두 번째로는 Aurora 교체 용이성이다. Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스이다. 공식 자료에 의하면 RDS MySQL 대비 5배, PostgreSQL보다 3배의 성능을 제공한다. 더군다나 AWS에서 직접 엔지니어링하고 있기 때문에 계속해서 발전하고 있다. 이렇게 보면 Aurora가 좋아보이지만 최소 월 10만 이상이기 때문에 가격에서 부담스럽다.
MySQL vs MariaDB 비교하기
MariaDB는 MySQL기반으로 만들어졌기 때문에 쿼리를 비롯한 전반적인 사용법은 MySQL과 유사하니 사용 방법에 대해서는 크게 걱정하지 않아도 된다. 비슷한 사용법 외에도 MariaDB는 MySQL 대비 더 좋은 장점이 있다. 10 reasons to migrate to MariaDB (if still using MySQL) 2015년에 현 AWS개발자가 MariaDB를 사용해야 할 10가지 이유를 제시했다.
- MariaDB 개발이 좀 더 개방적이고 활발한 커뮤니티를 지님
- 빠르고 투명한 보안패치 릴리즈
- 다양한 기능
- 다양한 스토리지 엔진
- 더 나은 성능
- Galera 액티브-액티브 마스터 클러스터링
- 오라클 관리하의 불확실성
- 계속 상승하는 MariaDB의 유명세
- 호환성과 쉬운 마이그레이션
- 15년 이후에는 마이그레이션이 어려울 수 있다
MariaDB 공식문서에도 친절히 MySQL과의 비교를 보여주고 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'책에서도 MariaDB의 장점을 보여준다. 이 내용들을 참고하면 현재 MariaDB의 장점은 5가지로 요약할 수 있다.
- 동일 하드웨어 사양으로 MySQL보다 향상된 성능
- 좀 더 활성화된 커뮤니티
- 다양한 기능
- 다양한 스토리지 엔진
- 빠르고 투명한 보안패치 릴리즈
결론
MySQL보다 MariaDB를 쓸 이유가 더 많다.
참고
https://loosie.tistory.com/366
'프로젝트' 카테고리의 다른 글
[Jenkins] 플러그인 설치 실패 - JVM의 certificate 문제 (0) | 2022.10.02 |
---|---|
[DB] MySQL Replication 적용하기 (0) | 2022.09.29 |
Spring Boot - Docker - Jenkins 사용해서 CI/CD하기 (0) | 2022.06.23 |
CKEditor4로 텍스트 에디터 사용하기 (0) | 2022.06.20 |
JWT (0) | 2022.06.16 |