TOPサーバ構築・運用> はじめに
徹底比較!! MySQLエンジン
徹底比較!! MySQLエンジン

第5回:Federatedエンジン
著者:NTTデータ  藤塚 勤也   2006/9/26
1   2  3  次のページ
はじめに

   今回は「Federated」ストレージエンジンを取り上げます。Federatedエンジンは、MySQL 5.0から提供された非常に新しいエンジンです。今回は、Federatedエンジンの特長や動作について解説します。

Federatedエンジンとは

   英単語の「Federated」を直訳すると「連合した」といった意味になります。この意味の通りFederatedエンジンは、このエンジンを動作させるMySQLサーバ単独で動作するものではなく、他のMySQLサーバと連携して動作するエンジンです。

   Federatedエンジンは、テーブルデータをFederatedエンジン自身が動作するMySQLサーバ(Federatedではこれをローカルサーバと呼ぶ)のデータベース内に格納せず、ネットワークに接続された他のMySQLサーバ(リモートサーバ)上のデータベース内に格納します。よって、Federatedエンジンが動作するローカルサーバ上には、テーブルデータの実体は存在しません。

   Federatedエンジンではリモートサーバ上のテーブルが、あたかもローカルサーバ上のデータベース内に存在するかのように振舞います。ローカルサーバのFederatedテーブルにアクセスするアプリケーションは、リモートサーバの存在を意識することなく処理を行えます。そして、その処理結果はリモートサーバ上のテーブルに反映されます。

   Federatedテーブルに対しては、SELECT文/INSERT文/UPDATE文/DELETE文の実行が可能です。実際のデータへの処理はリモートサーバにて行われるため、リモートサーバにてインデックスが有効であれば、インデックスが使用されます。ただし、Federatedエンジンには以下の通りいくつかの制約があります。

  • トランザクションをサポートしません
  • ALTER TABLE文とDROP TABLE文をサポートしません
  • クエリーキャッシュをサポートしません

表1:Federatedの制約


データベースサーバの構成

   改めて、Federatedエンジンが動作するために必要なMySQLサーバの構成を見てみましょう。図1で示すように、Federatedエンジンの動作のためには、ローカルサーバとリモートサーバの2サーバ構成が必要になります。機能的にはローカルサーバとリモートサーバを同一のサーバにて構成することも可能ですが、用途を考えると同一サーバで構成するメリットはあまりないと思います。

Federatedエンジン使用時のサーバ構成
図1:Federatedエンジン使用時のサーバ構成

   重要なことは、Federatedエンジンが動作するのはあくまでもローカルサーバであり、リモートサーバはテーブルデータを格納できる他のストレージエンジン(例えば、MyISAMやInnoDB)にて動作することです。さらに、リモートサーバはFederatedエンジンそのものをサポートしている必要もありません。

1   2  3  次のページ


株式会社NTTデータ  藤塚 勤也
著者プロフィール
株式会社NTTデータ   藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。

INDEX
第5回:Federatedエンジン
はじめに
  Federatedテーブルの作成
  Federatedエンジンの動作