1.1 MariaDB란?

  • MariaDB는 MySQL 커뮤니티 코드 베이스를 이용해서 탄생했다.
  • MariaDB는 Monty Program AB에 의해서 다듬어진 MySQL이다.
  • MariaDB는 오픈소스이다.
  • 참고 : Maria는 MySQL 창시자인 Monty의 둘째딸 이름이다.


1.2 MariaDB vs Mysql

1.2.1 공통점

  • mysql 5.x 버전과 MariaDB 5.x 버전은 명령어, 구조가 동일하며 버전 간 서로 호환된다.
구분MariaDBMysql
데이터베이스 서버 프로그램mysqldmysqld
MyISAM 체크 프로그램myisamchkmyisamchk
클라이언트 프로그램mysqlmysql
서버 관리자 유틸리티mysqladminmysqladmin
데이터 덤프 프로그램mysqldumpmysqldump
데이터 적재 프로그램mysqlimportmysqlimport
빌트인 백업 유틸리티mysqlhotcopymysqlhotcopy
스키마 업그레이드 유틸리티mysql_upgrademysql_upgrade
바이너리 로그 분석 프로그램mysqlbinlogmysqlbinlog


1.2.2 차이점

구분MariaDBMysql
라이선스ㅇ 서버 : GPL
ㅇ 클라이언트/라이브러리 : LGPL
ㅇ 커뮤니티 버전 : GPL
ㅇ 엔터프라이즈 버전 : 상용
스토리지ㅇ 기본메모리 : Memory 스토리지 엔진 사용
ㅇ 내부 임시 테이블 : Aria엔진
ㅇ 트랜잭션 : XtraDB
ㅇ NoSQL 지원 : Cassandre 지원
ㅇ 기본메모리 : Memory 스토리지 엔진 사용
ㅇ 내부 임시 테이블 : MyISAM
ㅇ 트랜잭션 : InnoDB 엔진
ㅇ NoSQL 지원 : Memcached 플러그인 지원
기능ㅇ 스레드풀 : 5.1버전부터 지원
ㅇ 버퍼풀 프리로드 : 5.5 버전 이상 지원
ㅇ SSD : 5.5 이상 버전
ㅇ 롤 기반의 권한관리 : 10.0 버전부터 지원
ㅇ 반 동기화 레플리케이션 : 미지원
ㅇ 가상컬럼 : 5.2이상 버전 지원
ㅇ 동적컬럼 : 지원
ㅇ PAM 인증 : 5.2이상 버전 지원
ㅇ 스레드풀 : 5.5 엔터프라이즈 버전에서만 지원
ㅇ 버퍼풀 프리로드 : 5.6 버전이상 지원
ㅇ SSD : 미지원
ㅇ 롤 기반의 권한관리 : 미지원
ㅇ 반 동기화 레플리케이션 : 5.5 버전이상 지원
ㅇ 가상컬럼 : 미지원
ㅇ 동적컬럼 : 미지원
ㅇ PAM 인증 : 5.5 이상 엔터프라이즈 버전만 지원
옵티마이저ㅇ index_merge 실행계획의 sort_intersection 기능 : 지원
ㅇ 비용기반 range와 index_merge 실행계획 지원 : 지원
ㅇ 블록 해시조인 : 지원
ㅇ 서브쿼리 캐싱 : 지원
ㅇ DML 실행계획 : 미지원
ㅇ Json 포맷의 실행계획 : 미지원
ㅇ index_merge 실행계획의 sort_intersection 기능 : 미지원
ㅇ 비용기반 range와 index_merge 실행계획 지원 : 미지원
ㅇ 블록 해시조인 : 미지원
ㅇ 서브쿼리 캐싱 : 미지원
ㅇ DML 실행계획 : 지원
ㅇ Json 포맷의 실행계획 : 지원


1.2.3 버전별 호환성

MariaDBMySQL
5.1, 5.2, 5.35.1
5.5, 10.05.5


1.2.4 성능비교

MariaDB 가 더 우수한 성능이 나온 벤치마킹


1.2.5 MariaDB가 MySQL을 대체할까?

  • 저자는 오픈소스로 제공되는 MariaDB가 더 널리 쓰일 것으로 예상했다.


1.2.6 MariaDB와 MySQL 선택

  • 저자는 DBMS 선택 시 1.DBMS의 성능, 2.안정성, 3.DBMS기능과 유틸리티, 4.기술지원을 중요한 요소로 꼽았으며,
  • MySQL 기능 테스트 도중 발생한 여러 에러와 원인파악에 장시간이 필요함을 근거로 MySQL 서버의 코드안정성에 의문을 제기했다.
  • 반면 성능은 MariaDB와 MySQL의 차이가 미미하다고 판단하였으며
  • MySQL은 오라클과, MariaDB는 SkySQL과 계약을 통해 기술지원을 받을 수 있다고 하였다.