server
무엇인가
MariaDB Server는 클라이언트가 네트워크로 접속해 스키마를 정의하고 SQL 질의를 실행하는 관계형 데이터베이스 서버다. 트랜잭션 처리와 분석 질의를 같은 서버 프로세스에서 다루며, 기존 MySQL 배포가 있던 자리를 대체하는 위치에 놓인다. 코드베이스는 C++로 작성됐고 커뮤니티 기여와 MariaDB Foundation이 관리한다.
어떻게 동작하나
서버 프로세스는 MySQL 와이어 프로토콜로 접속을 받아 SQL 파서와 옵티마이저를 거친 뒤 스토리지 엔진 API로 실행을 넘긴다. 엔진은 테이블 단위로 교체되며, InnoDB가 기본 트랜잭션 엔진이고 Aria, MyRocks, 분석용 ColumnStore, 샤딩용 Spider, 아카이브용 S3 엔진이 함께 빌드된다. 복제는 바이너리 로그와 전역 트랜잭션 ID를 기반으로 비동기·반동기·병렬 방식을 지원하고, Galera가 동기 다중 프라이머리 클러스터링을 맡는다. 11.8부터는 VECTOR 데이터 타입과 HNSW 근사 최근접 인덱스가 확장 없이 서버에 내장된다.
무엇과 다른가
MySQL과의 차이는 거버넌스와 라이선스에서 갈린다. MariaDB는 GPLv2를 'any later version' 조항 없이 유지하고, 코드베이스 관리 주체가 Oracle이 아니라 MariaDB Foundation이다. 와이어 프로토콜과 문법 호환성을 유지해 기존 MySQL 클라이언트·드라이버·덤프를 그대로 쓸 수 있고, 그 위에 시스템 버전 관리 테이블, 시퀀스, 윈도우 함수, Oracle SQL 모드, 내장 Galera 같은 자체 기능이 얹힌다.
어떻게 쓰나
설치는 mariadb.org/download가 배포하는 플랫폼별 패키지를 쓰는 것이 기본 경로다. 패키지는 서버 데몬과 클라이언트를 함께 배치하고, 설정은 my.cnf 계열 파일에서 데이터 디렉터리·포트·소켓·기본 엔진을 지정한다. 테이블 생성 시 ENGINE 절로 스토리지 엔진을 고르고, 복제와 클러스터링은 서버 설정과 전역 트랜잭션 ID 기반 복제 명령으로 구성한다. 소스에서 빌드할 때는 개발자 가이드의 절차와 MariaDB 테스트 프레임워크를 따른다.
전제와 한계
라이선스는 GPLv2로 고정되어 상위 버전으로 재라이선스할 수 없다. 릴리스는 연 단위 LTS와 분기 롤링으로 나뉘고, 바이너리 LTS는 3년간 유지된다. 네이티브 벡터 검색은 11.8 이상에서만 쓸 수 있고, Oracle SQL 모드는 PL/SQL 스타일 저장 루틴을 받아들이는 호환 모드이지 Oracle 서버가 아니다. Galera 동기 클러스터링은 여러 노드 구성을 전제로 한다.