Structured Query Launguage
MySQL vs MariaDB
Yoon
2021. 7. 9. 16:45
MariaDB 는 MySQL 의 발전된 형태의 대체제로써, GPL v2 라이센스로 유지되고 있고, MariaDB 커뮤니티 와 MariaDB 재단이 주축이 되어 개발되고 있다.
MySQL은 커뮤니티 버전과 상용 버전으로 나뉘어 집니다. 커뮤니티 버전은 서버와 클라이언트 프로그램, 그리고 라이브러리모두 GPL 라이센스로 배포되어집니다. 따라서 오픈소스로써 사용할 수 있습니다. 하지만 상용 버전은 상용 라이센스를 따르기 때문에 비용을 지불하지 않으면 사용할 수 없습니다.
MariaDB는 MySQL 커뮤니티 버전을 포크(fork)하여 사용하고 있습니다. 따라서 서버는 GPL 라이센스로 배포되어집니다. 클라이언트와 라이브러리는 LGPL 라이센서를 따릅니다. MariaDB는 GNU GPLv2 라이센스로만 배포되며 상용버전이 따로 없으며 MySQL을 포크해서 사용하기 때문에 자체적으로 상용버전을 출시할 수 도 없습니다.
MariaDB와 MySQL의 가장 큰 차이점은 오픈소스 정책의 방향이나 소프트웨어의 라이선스 정책이라고 보여짐
스토리지 엔진(Storage Engine) 비교
용도MariaDBMySQL
메모리 스토리지 엔진 |
MySQL 코드 베이스에 포함된 MEMORY 스토리지 엔진을 기본으로 사용합니다. | MariaDB의 메모리 스토리지 엔진과 거의 동일합니다. |
디스크 기반 내비 임시 테이블 스토리지 엔진 엔진 |
기본적으로 Aria 스토리지 엔진을 사용합니다. 이것은 InnoDB와 비슷하게 인덱스하며 레코드 데이터까지 모두 메모리 캐시를 이용할 수 있기 때문에 MySAM에 비해서는 빠른 처리를 보장합니다. | MySAM 스토리지 엔진을 사용하는 테이블을 생성하여 작업을 처리합니다. |
트랜잭션 지원 스토리지 엔진 |
PerconaServer에서 나온 XtraDB가 사용되었습니다만 10.0.7 버전 부터는 InnoDB가 기본이 되었다고 합니다. | InnoDB 스토리지 엔진을 사용합니다. |
NoSQL 지원 엔진 |
Cassandra의 데이터를 MariaDB 서버를 통해 접근할 수 있습니다. | Memcached 플러그인을 제공합니다. |
기능
기능은 조금씩 다른 부분이 많이 있습니다. 아래에 몇가지 차이점을 가져와 보았습니다.
용도MariaDBMySQL
스레드 풀 | MariaDB 5.1 버전부터 지원합니다. | 엔터프라이즈 버전에서만 지원합니다. |
버퍼풀 프리 로드 | XtraDB에서 버퍼 풀의 내용을 덤프하고, 덤프된 버퍼 풀 정보를 MariaDB 재시작 후 다시 버퍼 풀로 로딩할 수 있는 기능을 제공합니다 | MySQL 5.6 버전에서부터 InnoDB 버퍼풀의 덤프와 로딩 기능을 지원 |
SSD 지원 | XtraDB에서는 SSD 기반의 디스크 IO를 위한 블록 플러시 알고리즘 지원 | - |
롤(ROLE) 기반의 권한 관리 | 오라클과 같이 특정 유저 그룹을 위한 롤 생성 가능 | - |
반 동기화 레플리케이션 | - | 플러그인 형태로 제공 |
가상 컬럼 | 1개 이상의 컬럼 값을 미리 별도의 컬럼에 저장하거나 퀄 ㅣ처리 시점에 가공하여 보여 주는 기능 | - |
동적 컬럼 | NoSQL 처럼 사용할 수 있는 동적 컬럼 지원 가능 | - |