MySQL
MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 오라클이 관리 및 지원하고 있으며, 이중 라이선스가 적용됩니다. 하나는 GPL이 적용되는 무료 버전이고 다른 하나는 유료 상용 라이선스 버전입니다.
무료 버전과 유료 버전 모두 필요시 소스 코드를 고쳐 쓸 수 있지만, 무료 버전의 경우 소스 코드 수정 후 고객에게 "납품"을 하면 해당 수정된 MySQL 코드를 공개해야 합니다. "납품"하는 것이 아니고 "자체적으로 사용"하는 경우에는 소스 코드를 수정하더라도 소스 코드를 공개하지 않아도 됩니다. 이 부분이 약간 헷갈린 데 예시를 들면 아래와 같습니다.
MySQL Community Server를 사용하여 웹사이트를 운영할 경우: GPL 라이선스 된 SW를 사용하여 구축한 서버이지만 웹서비스 제공의 형태이므로 라이선스 의무 사항(소스코드 공개)이 적용되지 않습니다. 단, 시스템 자체를 외부에 판매(혹은 배포)할 경우에는 의무 사항(소스코드 공개)이 발생하게 되며, 필요시 Enterprise Edition을 구매해야 합니다.
MySQL이 사용자 컴퓨터에 설치되어야 하는 SW를 개발할 경우: 사용자가 SW 설치 시 사용자의 추가 action에 의해 Community Server가 설치되도록 개발하여 배포할 경우에는 라이선스 의무 사항이 적용되지 않습니다. 단, 응용 SW와 MySQL이 패키징되어 있다면 라이선스 의무 사항(소스코드 공개)이 발생하게 됩니다.
MariaDB
MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다. MySQL과 동일한 소스 코드를 기반으로 하며, MySQL의 무료 버전과 동일한 GPL v2 라이선스를 따릅니다.
MySQL과 동일한 소스 코드 기반이어서 MySQL -> MariaDB로의 마이그레이션이 비교적 간단합니다.
MySQL vs MariaDB
속도 및 성능
속도 및 성능 관점에서 현재 MariaDB는 쿼리 수행 및 복제 작업 처리 속도가 더 빠릅니다.
스토리지 엔진
데이터베이스 관리 시스템에서 스토리지 엔진은 데이터베이스 내의 데이터를 검색, 업데이트 및 저장하는 데 도움을 주는 구성 요소입니다. 사용하려는 스토리지 엔진이 데이터베이스 결정에 영향을 미칠 수 있습니다.
MySQL과 MariaDB 모두에서 여러 스토리지 엔진을 사용할 수 있지만 MySQL은 제공하는 옵션이 더 적습니다. MySQL의 스토리지 엔진으로는 InnoDB, CSV, Federated, MyISAM, Merge 등이 있습니다. MariaDB는 XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra, Connect 등 MySQL에서 지원하지 않는 몇 가지 스토리지 엔진을 지원합니다.
기능
MariaDB는 MySQL보다 다양한 기능을 제공합니다.
결론
버전에 따라 차이가 있겠지만 일반적으로 속도 및 성능, 스토리지의 다양성, 다양한 기능 등 여러 측면을 고려했을 때 MariaDB를 사용하는 것이 좋아 보입니다.
https://mariadb.com/resources/blog/mariadb-5-3-optimizer-benchmark/
https://aws.amazon.com/ko/compare/the-difference-between-mariadb-vs-mysql/
https://loosie.tistory.com/366#mysql
https://devocean.sk.com/opensource/techBoardDetail.do?ID=193
https://ko.wikipedia.org/wiki/MySQL
https://ko.wikipedia.org/wiki/MariaDB
https://github.com/mysql/mysql-server?tab=License-1-ov-file
https://github.com/MariaDB/server?tab=GPL-2.0-1-ov-file
'RDB' 카테고리의 다른 글
postgreSQL - 트랜잭션 격리 수준 (2) | 2023.12.05 |
---|---|
이미지는 어디에 저장해야 할까 (2) | 2022.06.22 |
mariaDB json value값만 가져오기 (0) | 2021.07.21 |