똑같은 삽질은 2번 하지 말자
MariaDB 와 MySQL 본문
1.1 MariaDB란?
MariaDB는 MySQL 커뮤니티 코드 베이스를 이용해서 탄생했다.
MariaDB는 Monty Program AB에 의해서 다듬어진 MySQL이다.
MariaDB는 오픈소스이다. 그리고 계속 오픈소스로 남기를 바란다.
1.2.1 MariaDB와 MySQL 그리고 PerconaServer
MariaDB를 이해하기 위해서는 먼저 MySQL과 PerconaServer(퍼코나서버)를 알아야한다.
PerconaServer는 Percona라는 회사에서 MySQL서버의 소스코드를 기반으로 만든 MySQL 서버의 또 다른 포크(fork) 버전이다.
MariaDB는 PerconaServer의 XtraDB 스토리지 엔진을 배포 버전에 포함하고 있다.
XtraDB는 MySQL 서버의 InnoDB의 소스코드를 개선해서 만든 새로운 스토리지 엔진이다.
1.2.2 공통점
MariaDB의 실행 프로그램들과 유틸리티는 모두 MySQL과 이름이 동일하며, 호환된다.
모든 클라이언트 API와 통신 프로토콜은 서로 호환된다.
MariaDB 5.x 버전에서는 사실 개발자가 MySQL 5.x 서버와 크게 구분해서 생각할 필요가 없을 정도다.
MariaDB 10.x 버전부터는 개발자에게 노출되는 부분도 편의성과 효율성 그리고 성능과 관련해서 많은 부분들이 개선 되었다.
1.2.3 차이점
MySQL의 이중 라이선스(커뮤니티와 엔터프라이즈 라이선스) 정책을 생각하면 뭔가 큰 차이가 있어 보이기도 한다.
MariaDB가 MEMORY 스토리지 엔진의 가변 데이터 타입에 대해 지원을 언급하고 있지만 10.0 버전에서는 구현되지 않았다는 것이 확인되었다.
MariaDB는 기본 내부 임시 테이블용 스토리지 엔진은 Aria를 사용한다. 이는 MySQL 기본엔진 MyISAM에 비해서는 빠른 처리를 보장한다.
MariaDB는 기본 트랜젝션 지원 스토리지 엔진으로 XtraDB를 사용한다. 물론 InnoDB도 사용할 수 있다.
내부적으로 사용하는 스토리지 엔진이 다르기 때문에 튜닝을 해야하는 옵션들이 서로 차이가 있고, 장단점이 다르다고 볼 수 있다.
MariaDB는 스레드 풀을 지원한다. MySQL은 엔터프라이즈 버전에서만 지원한다.
MariaDB의 XtraDB에서는 SSD 기반의 디스크 I/O를 위한 블록 플러시 알고리즘을 지원한다.
MariaDB는 서브 쿼리와 조인 쿼리 최적화를 지원한다.
MariaDB는 멀티 스레드 리플리케이션을 지원한다.
MariaDB는 롤(ROLE) 기반의 권한 관리를 지원한다.
MariaDB는 가상 칼럼과 동적 칼럼을 지원한다.
1.2.4 버전별 호환성
MariaDB 5.1 5.2 5.3은 MySQL 5.1과 호환된다.
MariaDB 5.5 10.0은 MySQL 5.5와 호환된다.
1.2.5 성능 비교
누가 더 빠르다라는 이야기를 쉽게 할 수 있는 사람은 거의 없을 것이다.
누가 테스트를 했는지 어떤 시나리오로 벤치마크를 했는지에 따라서 결과가 서로 달라진다.
직접 우리 회사 서비스 모델로 테스트해 보고 그 결과를 비교해보는 것이 최선이라고 볼 수 있다.
1.2.6 MariaDB가 MySQL을 대체하게 될까?
정답은 알 수가 없다. 단지 저자의 개인적인 생각으로는 MariaDB는 아마도 지금보다는 더 넓은 사용자층을 가지게 될 것으로 보인다.
구글에서 MariaDB 오픈소스를 지원하겠다고 선언한 상황이어서, 앞으로 MariaDB가 쉽게 사라지지는 않을 것이다.
다만 오라클이 더 패쇄적으로 엔터프라이즈 버전의 기능과 성능에만 집중할지, 커뮤니티 버전을 더 활성화시킬지는 두고 볼 일이다.
1.2.7 MariaDB와 MySQL 선택
DBMS를 선택할 때 가장 크게 고려해야 할 부분은 DBMS 성능, 안정성, DBMS 기능과 유틸리티, 기술 지원이다.
안정성 문제에 있어서 MySQL 서버의 대응은 조금 문제가 있어 보인다.
MySQL 엔터프라이즈 버전과 MariaDB의 기능을 비교하자면 MariaDB가 무료로 기능을 사용 할 수 있는 부분이 많다.
스레드 풀, 백업 기능, 메모리 사용량 체크등 소소해 보이지만 꼭 필요한 기능은 MariaDB에서 더 많이 제공 하고 있다.
기술 지원에 있어서도 MariaDB가 오라클에 비해 대응이 미흡하지 않다.
향간에 들리는 소문으로 MariaDB는 MySQL이 Oracle로 인수된 후, MySQL에 관해 Oracle이 소극적인 개발태도를
보이자, 개발자들이 개발한게 MariaDB라고 하더랍니다.
'DB' 카테고리의 다른 글
SQL 실행순서 / 쿼리 실행 과정 (0) | 2020.07.13 |
---|---|
방금 INSERT 된 Primary Key 가져오기(MyBatis) (0) | 2020.05.25 |
JDBC & Mybatis (0) | 2020.02.09 |
CREATE TABLE ~ (0) | 2019.07.05 |
SQL LIKE 조건 (0) | 2019.06.18 |