マルチソース・レプリケーションに対応
MySQL FabricのOpenStack統合も
先にも触れたとおり、MySQL 5.7では、レプリケーション・パフォーマンスが改善され、データベース・サーバとしての可用性もアップしている。
この改善ポイントの1つは、「マルチソース・レプリケーション」のサポートだ。これにより、複数のマスタ上の変更点を1台のスレーブに集約することが可能となり、バックアップ処理の集約化が実現される。加えて、(当然のことながら)複数のデータベース・サーバの情報を1つのサーバに集めて、リポートを作成するといったことも可能になる。
また、MySQLの場合、従来は1つのデータベース・スキーマに対して、単一のスレーブスレッドしか立てられなかったが、5.7からは、複数のスレーブスレッドが立てられるようになる。これにより、単一スレーブスレッドと比べて5倍のスループットが得られるようになり、レプリケーション・パフォーマンスが大きく向上する(つまり、レプリケーションの遅延が大幅に低減される/下図参照)。
可用性の向上という意味では、MySQL Fabricの強化も見逃せない。
MySQL Fabricは、レプリケーション機能や各種ユーティリティ、アプリケーションとFabricとを結ぶコネクタから構成されるフレームワークだ(下図参照)。
現行の「MySQL Fabric 1.5」では、サーバ監視を通じたスレーブの自動的な(マスタへの)昇格やレプリケーションの切り換え、シャーディング(データ分割)による拡張性・冗長性の確保などが実現されているほか、OpenStack(Nova)との連携もサポート。ターゲット・マシン上でのMySQLのプロビジョニングが容易になったほか、OpenStack上でのサーバ・セットアップ(スレーブの複製やレプリケーションの設定など)も簡素化され、クラウド環境上での運用効率が増している。
加えて、MySQL 5.7では、MySQLサーバ自身がLinux/UNIX環境上の「Syslog」をサポート。オプション機能を通じて、Syslogサーバにログを出力することが可能になった。さらに、「ロック」の機能も改善され、単一コネクションに複数のロック(ユーザーレベル・ロック)を持たせられるようになる。これによって、排他制御のコントロールがより柔軟に行えるようになる。
「Boost.Geometry」との統合でGISの機能性が向上
MySQL 5.7ではこのほか、特定のSQLクエリ・バッチに対するタイムアウト設定が可能になり、バッチ処理による他のトランザクションへの影響回避をより柔軟に行えるようになった。
また、ビジュアルな管理ツール「MySQL Workbench 6.2」を用いることで、Fabricノードの追加・構成確認・接続のオペレーションが効率化され、パフォーマンス・スキーマのレポーティングやグラフ化も実現される。加えて、MySQL Workbench 6.2では、他のデータベースからのマイグレーション機能として、「Microsoft SQL Server」や「PostgreSQL」に加えて、「Microsoft Access」からのマイグレーションも新たにサポートされている。ちなみに、MySQLは、Windows系(Microsoft系)製品との連携機能群(「MySQL on Windows」ツール群)が充実しており、Windows対応のMySQL Workbenchや、SQL Server・Accessからのマイグレーション・ウィザードをはじめ、Windows向けのMySQL インストーラー、「Microsoft Excel」からMySQLへのアクセスを可能にする「MySQL for Excel」、マイクロソフトの開発環境とMySQLとの連携を実現する「MySQL for Visual Studio」、「MySQL Connector/.NET」などがラインアップされている。
もう1つ、MySQL 5.7で注目すべきポイントが、前述したGIS機能の強化だ。これまで、「緯度・経度から成る位置情報の検索が遅い」というのがMySQLのネックとされてきた。だが、5.7では、GISの標準高速化ライブラリ「Boost.Geometry」との統合化が行われ、「緯度・軽度のデータと、それに紐付くタグ情報が迅速かつ柔軟に扱えるようになった」(杉山氏)。より具体的に言えば、MySQL 5.7のテーブル中の「SPACIAL-KEY」の値として、Rツリー・インデックスを付けることができる。「この機能を用いることで、特定の地図上に、近隣の情報をより高速に表示することができる」(杉山氏)ということだ。