ジャンプ先

MySQL エコシステム

DB-Engines によると、MySQL は世界で最も人気のあるオープンソース データベースの一つです。 最初のバージョンが 1995 年にリリースされて以来、継続的に開発が進められており、今日でも人気の高いリレーショナル データベースとなっています。 MySQL は、オープンソースと商用の幅広いエディションで構成されるエコシステムで成功を収めています。 MySQL はオンプレミスとクラウドの両方で広く使用されています。MySQL の主要なクラウド サービス プロバイダは、Google CloudOracleアマゾン ウェブ サービス(AWS)、Microsoft Azure などがあります。

MySQL フレーバー

今日、市場にはさまざまな MySQL フレーバーがあり、最適化、スケーラビリティ、クラスタリング、障害復旧などの機能を追加して MySQL を拡張しています。MySQL をフォークして構築され、現在も利用されている 2 つの主要なデータベースは、MariaDBPercona Server for MySQL です。

MySQL Community Edition と Enterprise Edition

Oracle は MySQL Community Edition と Enterprise Edition の両方を開発および保守しています。Enterprise Edition には Oracle が提供するテクニカル サポートが含まれており、MySQL Enterprise Monitoring、PAM 認証、強化されたセキュリティ、パフォーマンスとスケーラビリティの強化、エンタープライズ バックアップ、エンタープライズ監査、エンタープライズ クラスタ管理、スレッド プーリングなどの追加の機能があります。

MariaDB

MySQL の創設者は、オープンソースを維持することを保証する MariaDB を作成しました。JSON サポート、マルチソース レプリケーション、並列スレッド レプリケーションなど、MySQL のいくつかの機能は、実際には MySQL よりも前に MariaDB でリリースされました。MySQL に対する MariaDB の主なメリットは次のとおりです。

  • 分析用の ColumnStore や AWS S3 上のテーブルをアーカイブするための S3 エンジンなどの新しいストレージ エンジンの導入、MyISAM の最適化されたバージョンである Aria エンジン、高圧縮およびトラフィックの多いアプリケーション用の MyRocks、Cassandra、SphinxSE など
  • クエリの並列実行機能
  • スレッド プーリング。MySQL Enterprise Edition では利用できますが、コミュニティ エディションでは利用できません
  • MaxScale という名前のルーターを自由に使用できる
  • 複数の親ソリューション: Galera クラスタ

Percona

Percona という名前の会社は、MySQL 用の Percona サーバーを開発および保守しています。Percona は、MySQL に加えて長年にわたってこのデータベースを最適化し、新機能を導入するために膨大な量の作業を行ってきました。MySQL よりも Percona を使用すると、主に次のようなメリットがあります。

  • 改善された InnoDB の全文検索、改善されたメモリ ストレージ エンジンとフラッシュ メカニズム、より多くのハッシュ/ダイジェスト関数、InnoDB テーブルスペース、バイナリログ、一時ファイルに構築された暗号化のサポート
  • 最適化するための並列二重書き込みバッファの導入
  • 完全および増分バックアップ オプションを備えたホット バックアップ用の XtraBackup ツール
  • MyRocks と Toku のストレージ エンジンのサポート
  • テーブル、インデックス、クライアント、ユーザー、スレッドごとのパフォーマンス カウンタなど、高度なトラブルシューティング ツール
  • PAM 認証と監査ロギング。MySQL の Enterprise エディションでは利用できますが、コミュニティ エディションでは利用できません
  • MySQL を管理するための多くのオプションを持つユーティリティ サービスである Percona によって開発された Pt-toolkit

どのフレーバーを選ぶのがよいでしょうか。

データベースが異なると、特定のユースケースを対象とした機能が異なるため、どのデータベースを選ぶかはアプリケーションのニーズによって決まります。たとえば、アプリケーションで分析が必要な場合、Percona の clickhouse、または MariaDB の columnstore を使用できますが、MySQL ではそのようなオプションはありません。同様に、MySQL のコミュニティ バージョンでは利用できないスレッドプール機能を使用する場合は、Percona と MariaDB で Enterprise MySQL またはオープンソースのスレッドプール機能を選択する必要があります。

クラウドの MySQL

クラウド データベースは、組織内のデータを整理、保存、管理できるように、パブリック クラウド環境またはハイブリッド クラウド環境で動作するように構築されたデータベースです。クラウド データベースは、マネージド Database as a Service(DBaaS)として提供されるか、クラウドベースの仮想マシン(VM)にデプロイされ、社内の IT チームが自己管理します。マネージド MySQL の主なクラウド プロバイダは次のとおりです。

Google Cloud

Google Cloud は、ユーザーが自己管理する必要がある MySQL の仮想マシン ホスト バージョンと、フルマネージド サービスである Cloud SQL の両方を提供します。

アマゾン ウェブ サービス(AWS)

Amazon Web Services(AWS)は、MySQL 用の VM ホスト オプションと RDS 形式のフルマネージド ソリューションを提供します。 AWS には、追加機能を備えた MySQL の MySQL 互換製品である Aurora の製品もあります。

Azure SQL Database

Azure は、他のクラウド ベンダーと同様に、MySQL の 2 つのデプロイモデルを提供します。Azure VM 上の MySQL の形式の仮想マシン オプションと、Azure Database for MySQL の形式のフル マネージド バージョンです。

Oracle Cloud

Oracle では仮想マシンで MySQL をホストできます。さらに、MySQL HeatWave Database Service という新しいフルマネージド サービスも提供しています。

デジタル オーシャン

デジタル オーシャンは、その仮想マシンで MySQL をホストする機能も備えています。また、MySQL 用のフルマネージド ホスティング オプションも用意されています。

高可用性(HA)またはクラスタ ソリューション

多くの企業が MySQL の拡張に取り組んでおり、MySQL データベースのフェイルオーバーと高可用性を提供するプロダクトを作成しています。MySQL で直接使用するツールもあれば、MySQL のソースコードを修正した結果、個別のプロダクトが作成され、高可用性またはマルチ親クラスタが提供されるものもあります。よく使用される MySQL HA およびスケーラビリティ ソリューションには、次のようなものがあります。

  • MySQL のグループ レプリケーションと InnoDB クラスタ

InnoDB クラスタは少なくとも 3 つの MySQL Server インスタンスで構成され、高可用性とスケーリングの機能を備えています。InnoDB クラスタは、MySQL シェル、MySQL ルーター、グループのレプリケーションを使用する MySQL サーバーで構成されます。詳細はこちらをご覧ください。

Percona XtraDB クラスタは、高可用性、並列レプリケーション、スケーラビリティの機能を提供する同期クラスタリング ソリューションです。Percona XtraDB クラスタには、ProxySQL を使用して Percona XtraDB クラスタノードを自動的に構成する ProxySQL 管理ツールが含まれています。詳細はこちらをご覧ください。

  • MariaDB Galera クラスタ

MariaDB Galera クラスタは、高可用性とスケーラビリティの機能を提供する、MariaDB 用の仮想同期マルチプライマリ クラスタです。MariaDB サーバーと Galera wsrep プロバイダ ライブラリを利用しています。自動ノード参加、真の並列レプリケーション、マルチプライマリ トポロジなどの機能を提供します。 詳細はこちらをご覧ください。

  • 連続タングステン クラスタ

タングステン クラスタは、1 つの簡単なパッケージを提供します。このパッケージには、MySQL データベースをクラスタとしてデプロイして管理するために必要なすべてのコア コンポーネントが含まれています。ジオクラスタリング ソリューションを提供します。これは、タングステン マネージャー、レプリケーター、コネクタ、データノード、ダッシュボードで構成されます。 詳細はこちらをご覧ください。

  • MariaDB Xpand(旧称 ClustrixDB)

MariaDB Xpand は、トランザクション ワークロード向けに、ACID 準拠の分散 SQL、高可用性、フォールト トレラント、書き込みスケーリング、水平スケールアウトを提供しています。MariaDB Xpand は MariaDB Enterprise のコンポーネントです。これは、1 つ以上の MaxScale ノードと 3 つ以上の Xpand ノードで構成されます。詳細はこちらをご覧ください。

  • ScaleArc

ScaleArc は高可用性を提供するデータベース ロード バランシング ソフトウェアです。詳細はこちらをご覧ください。

  • Vitess

Vitess にはシャーディング機能が組み込まれており、アプリケーションにシャーディング ロジックを追加することなく拡張して高可用性とスケーラビリティを実現します。詳細はこちらをご覧ください。

  • フェイルオーバーのための標準レプリケーションを提供するツール: MHA、ProxySQL、MaxScale、Orchestrator
  • Google Cloud、Oracle、AWS、Azure などのクラウドベースのサービスは、MySQL 用の社内 HA を提供します

MySQL ツール

MySQL ツールは、ウェブベースのコマンドライン インターフェース(CLI)とグラフィカル ユーザー インターフェース(GUI)というすべての形式で存在します。 MySQL には、データベースの設計、開発、管理、バックアップ、パフォーマンス モニタリング、アラートのための、さまざまなオープンソース ツールと商用ツールがあります。

GUI でよく使用される MySQL モニタリング ツールは次のとおりです。

Percona のモニタリングと管理、Prometheus、MySQL Enterprise Monitor、New Relic、SolarWinds、HeidiSQL、AppDynamics、Datadog、SQLyog。

よく使用される管理ツール、開発ツール、ユーティリティ ツールは次のとおりです。

  • GUI ベース - MySQL Workbench、HeidiSQL、DBeaver、dbForge Studio、Navicat、SQLyog
  • CLI ベース - Percona ツールキット、Ghost

一般的なツールの詳細:

  • MySQL Workbench - MySQL で所有され、高度な機能を備えたコミュニティ エディションとエンタープライズ エディションで利用可能
  • Percona モニタリングおよび管理(PMM) - Percona によって開発され、無料で利用可能
  • HeidiSQL - Ansgar Becker によって開発され、無料で利用可能
  • Percona ツールキット - Percona によって開発され、無料で利用可能
  • Toad - クエストが所有する、有料ツール
  • phpMyAdmin - MySQL を管理するための無料のオープンソース ウェブベースのツール
  • DBeaver - オープンソース コミュニティによって開発され、DBeaver が管理する高度な機能を備えたコミュニティ エディションとエンタープライズ エディションで利用できます
  • Navicat - CyberTech が所有する、有料ツール
  • SQLyog - Webyog が所有する、有料ツール

アラートメカニズムを使用してエラー率、トラフィック、クエリパターンを分析するグラフを含むその他の主要なモニタリング ツールは、New Relic、Zabbix、Cortex、Prometheus、Grafana です。

コンテナや Kubernetes を使用して MySQL を実行する

最近では、Docker コンテナ イメージを使用して Kubernetes クラスタ上でデータベースを実行する方法が普及しています。これは、コードを使用したデータベース管理、簡単かつ迅速なデプロイ、データ保護、アプリケーションからの分離、共有リソースのユーザビリティを支援します。基本的に、Docker の利点はすべてデータベース システムで活用できます。また、MySQL ですでに利用可能な Kubernetes オペレーターもあります。ただし、この分野には多くの改善の余地があります。

MySQL を試す準備はできましたか?

Google Cloud は、MySQL - Cloud SQL for MySQL のフルマネージド サービスを提供しています。
Cloud SQL の詳細

Cloud SQL for MySQL がイノベーションにどのように役立つかをご覧ください。 ドキュメントを見る