TOP
>
サーバ構築・運用
> はじめに
徹底比較!! 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サーバ構成が必要になります。機能的にはローカルサーバとリモートサーバを同一のサーバにて構成することも可能ですが、用途を考えると同一サーバで構成するメリットはあまりないと思います。
図1:Federatedエンジン使用時のサーバ構成
重要なことは、Federatedエンジンが動作するのはあくまでもローカルサーバであり、リモートサーバはテーブルデータを格納できる他のストレージエンジン(例えば、MyISAMやInnoDB)にて動作することです。さらに、リモートサーバはFederatedエンジンそのものをサポートしている必要もありません。
1
2
3
次のページ
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
INDEX
第5回:Federatedエンジン
はじめに
Federatedテーブルの作成
Federatedエンジンの動作