トップ OSS紹介 MariaDB

MariaDB

サポート対象

NRIのOpenStandiaが提供するMariaDB最新情報

バージョンアップ情報

MariaDB情報

MariaDB情報更新日:2025/05/13

MariaDBとは

MariaDB Serverは、世界中で非常に人気のあるデータベースサーバーの1つです。MySQLの元開発者によって作られ、オープンソースであることが保証されています。主なユーザーにはWikipedia、WordPress.com、Googleなども含まれます。

MariaDB Serverは、データを構造化して保存することができるため、銀行業務からウェブサイトまで幅広い用途で使用されます。当初はMySQLの強化版かつ互換性を持つ代替品として設計されました。しかし、現在は、その高速性、拡張性、堅牢性、そしてストレージエンジンやプラグインといった豊富なエコシステムにより、非常に多様なユースケースに適応できるデータベースとして利用されています。

MariaDB Serverはオープンソースのリレーショナルデータベースソフトウェアとして開発されており、SQLを使用してデータにアクセスします。また、バージョン10.2以降では、GIS(地理情報システム)やJSON(JavaScript Object Notation)の機能も追加されています。

カテゴリ

MariaDB 11

MySQL 8

ストレージエンジン

MySQL 8がサポートするストレージエンジンの他に、ColumnStore, MyRocks, Aria, S3 Storage Engine, CONNECT, Spiderなどをサポート。

標準的なInnoDB、MyISAM、MEMORY、CSVなどをサポート。

JSONサポート

JSONデータを文字列として保存。

JSONデータをバイナリ形式で保存し、効率的なアクセスを提供。

クラスタリング

Galera Clusterが標準で統合されている。

標準ではクラスタリング機能は含まれず、MySQL Clusterなど別途設定が必要。

バージョニング

システムバージョニングやアプリケーションタイム期間をサポート(バイテンポラル)。

標準ではサポートされていない。

オプティマイザ

MariaDB独自のオプティマイザ改善が多数含まれる。

MySQLのオプティマイザを使用。

セキュリティ

SUPER権限を細分化し、より細かい制御が可能。

SUPER権限は細分化されていない。

ライセンス

完全なオープンソース(GPL)。

オープンソースだが、一部の機能は商用ライセンスが必要な場合がある。

新しいデータ型

UUID, INET6, INET4などのデータ型をサポート。

標準的なデータ型のみ。

JSON関数

JSON関数が豊富だが、MySQLほど最適化されていない場合がある。

JSON関数が豊富で、効率的な操作が可能。

その他の機能

CREATE OR REPLACE構文、DELETE ... RETURNINGなどをサポート。

一部の構文はサポートされていない。

主な特徴

MariaDBは以下の特徴があります。

多くのストレージエンジンを提供

標準のMyISAM、BLACKHOLE、CSV、MEMORY、 ARCHIVE、MERGE ストレージエンジンに加え、以下のものを含んでいます。

  • ColumnStore(データウェアハウス用に最適化されたカラム志向ストレージエンジン)
  • Aria
  • InnoDB(10.2以降はデフォルトのストレージエンジン)
  • XtraDB (10.1までは、デフォルトのストレージエンジン)
  • MyRocks(Facebook社で開発された性能・拡張性に優れたストレージエンジン)
  • FederateX(Federatedからの置き換え)
  • OQGRAPH
  • S3 Storage Engine
  • SphinxSE
  • CONNECT
  • SEQUENCE
  • Spider
  • Mroonga(CJKに対応した全文検索用ストレージエンジン)

性能改善の実施

主なものでは、以下のような性能改善が実施されています。

  • サブクエリの効率化
  • レプリケーションの高速化(バイナリログのグループコミット)
  • 並列レプリケーション
  • Windows上での InnoDB 非同期IOの改良
  • MEMORYエンジンのインデックス高速化
  • MyISAM のキーキャッシュや、ハッシュサイズの性能改善
  • CHECKSUM TABLEコマンドの高速化
  • 文字コード変換の性能改善
  • スレッドプールの改良による速度向上
  • MariaDBへのクライアント接続時のスピードを改善
  • デバッグが利用されていないときのDBUGコードの改善
  • Ariaストレージエンジン使用時の複雑なクエリーの高速化
  • テストスイートの拡張による多くテストをさらに高速化

機能拡張と新機能

主なものでは以下のような機能拡張および、新機能が加わっています。

  • Window関数の対応
  • マイクロ秒精度
  • DECIMAL型での小数点以下の最大桁数が30桁から38桁に拡張
  • WITH ステートメントによるCTE(Common Table Expressions)に対応
  • 再帰CTEに対応
  • CHECK制約に対応
  • BLOBやTEXT型でDEFAULTをサポート
  • Oracle風のEXECUTE IMMEDIATEステートメントに対応
  • JSON関連関数の追加
  • JOINの最適化を行う "Table Elimination" 機能
  • 仮想列(実在しない自動計算列)
  • CONSTRAINTやカラム定義においてCHECK制約式による制限の追加が可能
  • BLOBやTEXT型でもDEFAULT値の利用が可能
  • ユーザ統計情報の拡張
  • ユーザ単位でのKILLコマンドの実行
  • クエリーID単位でのKILLコマンドの実行
  • ユーザ認証のプラグイン機能
  • ストレージエンジンに応じた CREATE TABLE 構文
  • INFORMATION SCHEMA の PLUGINS テーブルの機能拡張
  • バイナリログでグループコミットが利用可能
  • mysqlbinlog コマンドに "--rewrite-db" オプションの追加
  • 特定のコマンドにおいて、実行状況を表示する機能を追加
  • JOIN および、サブクエリの高速化
  • HandlerSocket 機能の追加および、HANDLER構文の高速化
  • Dynamic Columns機能を追加
  • GIS機能の追加
  • マルチソースレプリケーション機能の追加
  • グローバルトランザクションIDをサポート
  • SHOW EXPLAIN コマンドの追加
  • Roleベースの権限機能の追加
  • PCRE 正規表現ライブラリの更新
  • DELETE ... RETURNING構文のサポート
  • システム変数のデフォルト値の一部変更
  • その他多数(各バージョンのリリース情報を参照のこと)

テスト方法の改良

  • テストスイートによりより多くのテストを実施。
  • テストケースバグを改修。
  • よりよい機能テストを実施するため、異なるconfigureオプションによるテストを構築
  • 無効なテストを削除。

少ない警告やバグ

  • 可能なかぎり多くのバグを修正し、可能なかぎり多くのコンパイラ警告を解消。

真のオープンソース

  • MariaDBの全てのコードは、GPL、LGPLもしくはBSDによってリリースされています。
  • MariaDBはMySQL Enterprise Editionのようなクローズドソースモジュールを含んでいません。MySQL 5.5 Enterprise Editionのクローズドソース機能のすべては、MariaDBオープンソースバージョンに含まれています。
  • MariaDBのクライアントライブラリは、クローズドソースのソフトウェアとの連携を可能とするために、LGPLによりリリースされてい ます。
  • MariaDBはすべてのバグ修正のためのテストコードを含んでいます。OracleはMySQL5.5で修正された新しいバグに対して、テストケースを提供していません。
  • MariaDBではすべてのバグや開発計画が公開されています。
  • MariaDBは真のオープンソース精神で、コミュニティにより開発が行われています。

メリット・デメリット

メリット、必要性

1.オープンソースであること

  • 無償で利用でき、ライセンス費用を抑えられます。
  • コミュニティによる活発な開発が行われており、継続的な機能改善やセキュリティアップデートが期待できます。
  • ソースコードが公開されているため、必要に応じてカスタマイズが可能です。

2.MySQLとの互換性

  • MySQLとの互換性が高く、MySQLから容易に移行できます。
  • 既存のMySQLアプリケーションをほとんど変更せずに利用できます。

3.高性能

  • 大規模なデータ処理や高負荷なWebアプリケーションなど、高いパフォーマンスが要求されるシステムに適しています。

4.初心者向けの使いやすさ

  • MySQLと比較して、パフォーマンスが最適化されており、高速なデータ処理が可能です。
  • 特に、大規模なデータ処理や高負荷な環境での性能に優れています。

5.豊富な機能

  • 多様なストレージエンジンをサポートしており、用途に応じた最適な選択が可能です。
  • セキュリティ機能が強化されており、データの安全性を確保できます。
  • JSONデータ型等の現代的なデータ型をサポート。

デメリット・注意点・課題

1.移行における注意点

  • MySQLとの完全な互換性があるわけではないため、移行前に十分な検証が必要です。
  • 一部の機能や構文にMySQLとの違いがあります。

2.大規模システムでの課題

  • 大規模なシステムでは、パフォーマンスチューニングや運用管理が複雑になることがあります。
  • 専用のレプリケーションサーバーはありません。

動作環境

以下のバイナリが提供されており、対応するOS/CPUは以下のとおりです。

バイナリパッケージ

OS/CPU

tar.gzファイル

ソースコード

MSI パッケージ

Windows(64ビット)

ZIP ファイル

Windows(64ビット)

tar.gzファイル

Linux(64ビット)

DEBパッケージ

Debian/Ubuntu

RPM パッケージ

RedHat Enterprise
Linux/CentOS/Fedora/Mageia/OpenSUSE/SUSE Enterprise Linux

pacman パッケージ

Arch Linux

※MariaDBは主要なLinuxディストリビュータの標準レポジトリで利用可能なので、OSのパッケージマネージャから、mariadb-server を探すだけで利用可能です。

MariaDBのライセンス

MariaDBのライセンスは、GPLのバージョン2によりリリースされています。MariaDBのクライアントライブラリは、クローズドソースのソフトウェアとの連携を可能とするために、LGPLによりリリースされています。

MySQLとの互換性

MySQLとMariaDBのバージョンの互換性は以下のとおりとなります。

MySQL バージョン

MariaDB バージョン

5.1

5.1、5.2、5.3

5.5

5.5、10.0

5.6

10.0、10.1、10.2、10.3、10.4

5.7

10.2、10.3、10.4

8.0

10.4、10.5、10.6、10.7、10.8

互換性があるという意味は、以下のとおりです。

  • データやテーブル定義ファイルにバイナリ互換性がある
  • 全てのクライアントAPIや、プロトコルや構造が、同一
  • 全てのファイル名、バイナリ、パス、ポート、ソケットなどは同じ
  • 全てのMySQLコネクタ(PHP、Perl、Python、Java、.NET、MyODBC、Ruby、MySQL Cコネクタなど)は、MariaDBでも変更なく動作する
  • mysql-client パッケージは、MariaDBサーバでも動作する
  • 共有クライアントライブラリはMySQLのクライアントライブラリとバイナリ互換がある

上記に記載したとおり、基本的には互換性が保障されていますが、いくつかの細かい点で非互換な部分が存在します。MariaDBとMySQLの各バージョンの互換性に関しては、以下のページを参照してください。

製品ダウンロード

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • PostgreSQL
    サポート対象

    PostgreSQL

    ポストグレエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システムです。

  • MongoDB
    サポート対象

    MongoDB

    モンゴデービー。高可用性、スケーラビリティ、スキーマレスに注目が集まる、NoSQLデータベースです。

  • MySQL
    サポート対象

    MySQL

    マイエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システム

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。