MariaDB 와 MySQL - 기능
See also MariaDB vs MySQL - Compatibility
더 많은 스토리지 엔진
표준화된 MyISAM, BLACKHOLE, CSV, MEMORY, ARCHIVE, 와MERGE 을 포함하여, MariaDB 소스 와 바이너리 패키지는 다음과 같은 스토리지 엔진을 포함하고 있음 :
- Aria
- XtraDB (InnoDB 의 대체)
- FederatedX (Federated 의 대체)
- OQGRAPH (In MariaDB 5.2, MariaDB 5.3 and MariaDB 10.0. Disabled in MariaDB 5.5 only.) — new in 5.2
- SphinxSE — new in 5.2
- IBMDB2I. Oracle은 MySQL 5.1.55 에서 이 코드를삭제했지만, MariaDB 는 5.5 버전까지 보존하고 있음
- TokuDB in MariaDB 5.5 와 MariaDB 10.0
- Cassandra in MariaDB 10.0
- MariaDB에 NoSQL 스토리지 엔진을 추가중에 있음
- CONNECT in MariaDB 10.0
- SEQUENCE in MariaDB 10.0
- Spider in MariaDB 10.0
- ColumnStore, 데이터 웨어하우징에 최적화된 컬럼 기반의 스토리지 엔진
속도 개선
- MariaDB 5.3에는 많은 옵티마이저의 향상이 있었음 드디어 서브 질의가 사용 가능해 졌다! 전체 목록과 MySQL는 여기. 벤치마크를 찾으려면 여기.
- 더 빠르고 안전한 복제: 바이너리 로그에 대한 Group 커밋. 이것은 복제와 많은 업데이트를 이용한 설치 작업을 2배 이상 빠르게 해줌
- 병렬 복제. — new in 10.0
- 윈도 상의 Innodb 비동기 IO 서브시스템에 대한 개선 .
- MEMORY(HEAP) 엔진용 인덱스가 더 빨라짐. 간단한 테스트에 의하면, INSERT 문의 성능은 integer용 인덱스에 24% 이상 빨라졌으며, CHAR(20) 컬럼 상의 인덱스는 60% 이상 빨라짐
- 세그먼크된 키 캐쉬 for MyISAM. MyISAM 에 대해 4x 성능 개선 가능. — new in 5.2
- 조절 가능한 해시 크기 for MyISAM 와 Aria. 이를 통해 MyISAM/Aria 테이블을 지연된 키와 함께 사용할 경우 셧 다운 타임이 비약적으로 개선됨 (몇 시간에서 몇 분으로). — new in 10.0.13
- CHECKSUM TABLE 더 빨라짐.
- 문자 셋 변환의 성능 개선 (불필요한 변환은 제거). 전반적으로 1-5% 성능 향상 (sql-bench에 따르면), 0x00-0x7f 사이의 문자들로 이루어진 큰 결과 셋에 대해서는 더 큰 성능 향상을 보임
- MariaDB 5.1 에서의 쓰레드 풀 과 MariaDB 5.5 에서의 성능 향상. 이를 통해 MariaDB는 20만 이상의 동시 연결과 눈에 띄는 성능 개선을 지원함
- MariaDB 로의 클라이언트 연결시 속도의 많은 향상. 특히 MariaDB 10.1 과 MariaDB 10.2 에 적용됨
- DBUG 코드를 개선. 디버그를 컴파일하지만 사용하지 않음으로써 속도를 향상시킴.
- Aria 스토리지 엔진 사용을 통한 복잡한 질의 (보통 디스크에 임시 테이블을 사용하는 질의) 를 더 빠르게 실행할 수 있음. 이는 Aria 스토리지 엔진을 내부 임시 테이블 용도로 사용하는데, 복잡한 SELECT 문의 실행 속도를 높여줌. Aria 는 임시 테이블 처리에서 MyISAM 과 비교하여 더 빠른데, 이는 Aria가 row 데이터 처리에 메모리를 사용하고 디스크를 사용하지 않기 때문임
- 테스트 도구가 확장되었으며, 더 많은 항목들을 테스트함에도 더 빠르게 실행됨
확장성과 새로운 특징
우리는 많은 새로운 기능을 MariaDB에 추가했다. 만약 패치나 특징이 유용하거나 안전하고, 안정적이라면, — MariaDB에 그것을 포함하려는 모든 노력을 다할 것이다. 가장 눈여겨 봐야할 특징들은 다음과 같다:
- Microseconds in MariaDB — new in 5.3
- DECIMAL 형식에서 소숫점 이하 자리수 확대
30
to38
. — new in 10.2 - Microsecond Precision in Processlist
- Table 제거
- 가상 컬럼 — new in 5.2
- CHECK CONSTRAINT — new in 10.2
- DEFAULT expression, including
DEFAULT
forBLOB
andTEXT
. — new in 10.2 - 확장된 사용자 통계 — new in 5.2
- 사용자의 모든 질의 KILL — new in 5.3,
- KILL QUERY ID - 연결은 유지한 채 특정 질의를 종료 — new in 10.0.5,
- Pluggable Authentication — new in 5.2
- 스토리지-엔진-지정 CREATE TABLE — new in 5.2
- INFORMATION SCHEMA.PLUGINS 테이블 향상 — new in 5.2
- 바이너리 로그에 대한 그룹 커밋. 눈에 띄게 복제 속도 향상 — new in 5.3
mysqlbinlog 사용된 데이터베이스를 변경하는 옵션 추가 — new in 5.2--
rewrite-db- 진행률 보고 for
ALTER TABLE
andLOAD DATA INFILE
. — new in 5.3 - 더 빨라진 조인과 서브 질의. — new in 5.3
- HandlerSocket 과 더 빨라진 HANDLER 호출. — new in 5.3
- Dynamic Columns 지원. — new in 5.3
- GIS Functionality — new in 5.3
- 멀티 소스 복제. — new in 10.0
- Global Transaction ID. — new in 10.0
- SHOW EXPLAIN 다른 쓰레드에서 실행되는 질의에 대한 EXPLAIN 플랜 제공 — new in 10.0
- Roles. — new in 10.0
- PCRE 정규식 (including
REGEXP_REPLACE()
). — new in 10.0 - DELETE ... RETURNING. — new in 10.0
전체 목록을 보려면, 각 릴리즈별 특징을 참조
향상된 테스팅를 위한 조언
- 테스트 묶음에서 더 많은 테스트를 실행
- 버그는 테스트를 통해서만 발견할 수 있음
- 더 나은 기능을 테스트하기 위해 다른 설정 옵션으로 테스트를 실행
- 불필요한 테스트를 제거 (예를 들어, 테스트 하지 않은 기능 "X"를 테스트 하지 말 것)
더 줄어든 경고와 버그
- 버그는 나쁘다. 가능한 많은 버그를 해결하고, 새로운 버그를 안만들려고 노력했다.
- 컴파일러의 경고도 또한 나쁘다. 가능한 많은 컴파일러 경고를 제거했다.
진정한 오픈 소스
- MariaDB 내의 모든 코드는 GPL, LPGL 또는 BSD 하에서 배포된다.
- MaridDB 는 MySQL Enterprise Edition 과 같은 클로즈드 소스 모듈을 가지고 있지 않음. 그러나, MySQL 5.5 Enterprise Edition 클로즈드 소스 모듈에 포함된 모든 기능은 MariaDB 오픈 소스 버전에서도 발견할 수 있음
- MariaDB 클라이언트 라이브러리 (C, Java(JDBC), 윈도(ODBC)) 는 LGPL 하에서 릴리즈되며 클로즈드 소스 소프트웨어에 연결 가능함. 그러나, MySQL 클라이언트 라이브러리는 GPL 하에서 릴리즈되지만 다른 클로즈드 소스 소프트웨어에서의 연결을 허용하지 않음
- MariaDB 는 모든 해결된 버그들의 테스트 케이스를 포함하고 있음. Oracle 은 MySQL 에서 해결된 새로운 버그들의 테스트 케이스를 제공하지 않음.
- 모든 버그들 과 개발 계획 이 공개됨
- MariaDB 는 진정한 오픈 소스 정신을 지키는 개발자 커뮤니티에 의해 개발됨
관련 링크
Comments
Comments loading...