MySQL エコシステム
DB-Engines によると、MySQL は世界で最も人気のあるオープンソース データベースの一つです。 最初のバージョンが 1995 年にリリースされて以来、継続的に開発が進められており、今日でも人気の高いリレーショナル データベースとなっています。 MySQL は、オープンソースと商用の幅広いエディションで構成されるエコシステムで成功を収めています。 MySQL はオンプレミスとクラウドの両方で広く使用されています。MySQL の主要なクラウド サービス プロバイダは、Google Cloud、Oracle、アマゾン ウェブ サービス(AWS)、Microsoft Azure などがあります。
関連トピック
MySQL フレーバー
今日、市場にはさまざまな MySQL フレーバーがあり、最適化、スケーラビリティ、クラスタリング、障害復旧などの機能を追加して MySQL を拡張しています。MySQL をフォークして構築され、現在も利用されている 2 つの主要なデータベースは、MariaDB と Percona 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 の主なメリットは次のとおりです。
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 クラスタは、高可用性、並列レプリケーション、スケーラビリティの機能を提供する同期クラスタリング ソリューションです。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 を試す準備はできましたか?
Cloud SQL for MySQL がイノベーションにどのように役立つかをご覧ください。 ドキュメントを見る