TOPサーバ構築・運用> Federatedテーブルの作成
徹底比較!! MySQLエンジン
徹底比較!! MySQLエンジン

第5回:Federatedエンジン
著者:NTTデータ  藤塚 勤也   2006/9/26
前のページ  1  2   3  次のページ
Federatedテーブルの作成

   Federatedテーブルを作成するのは、ローカルサーバ上のデータベース内です。その際CREATE TABLE文にて、2つのFederatedテーブル用の指定が必要になります。1つは、他のエンジンと同様にENGINE句の指定で「FEDERATED」を指定します。もう1つは、CONNECTION句に対象とするリモートサーバへの接続文字列を指定します。

   CONNECTION句に指定する接続文字列とは、作成するFederatedテーブルが接続するリモートサーバ上のデータベース内のテーブル(リモートテーブル)を指し示すものです。形式は以下の通りです。
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name

scheme
"mysql"文字列固定
user_name
リモートサーバへ接続するためのユーザ名
password
リモートサーバへ接続するためのパスワード(省略可能)
host_name
リモートサーバのホスト名
port_num
リモートサーバの接続ポート(省略可能)
db_name
リモートサーバ上の対象データベース名
tbl_name
リモートサーバ上の対象テーブル名

表2:CONNECTION句の文字

   例えば、以下のような文字列を指定します。

CONNECTION='mysql://mysql@remote_server:3306/remote/TEST00'

   なお、Federatedテーブルを作成する際は、事前に対象となるリモートテーブルが存在し、それが接続可能な状態になっている必要があります。もし、リモートテーブルが存在しないとCREATE TABLE文の実行が正常終了しません。

   またFederatedテーブルの構成は、リモートテーブルの構成と同一でなければなりません。しかし、リモートテーブルと構成の異なるFederatedテーブルを作成しても、CREATE TABLE文自体は正常終了しますので注意が必要です。もちろん、リモートテーブルと異なった構成で作成したFederatedテーブルへのアクセスはエラーになります。


Federatedのテーブルファイル

   Federatedテーブルを作成するとローカルサーバ上のデータベースディレクトリ内に、どのようなカラム構成にてできているかなどのテーブル構造のデータが格納された「テーブル名.frm」ファイルのみが作成されます。ディスク上にデータを格納するためのファイルは存在しません。

   次に示すは、「Federated_TEST」データベース内に「TEST00」という名前のFederatedテーブルを作成した時のファイル一覧です。「Federated_TEST」ディレクトリ内に「TEST00.frm」ファイルのみが存在していることが分かると思います。

[root@localhost var]# ls Federated_TEST/
TEST00.frm

   また、次に示すのはFederatedテーブルの「TEST00」が対象としているリモートテーブル内に10万件のレコードをロードした状態にて、「show table status」コマンドを実行した結果内容です。実際には、ローカルサーバ上には1件もデータを格納していませんが、Federatedテーブル「TEST00」内には、10万件のレコード「Rows: 100000」があるように見えます。

mysql> show table status \G;
************ 1. row ****************
Name: TEST00
Engine: FEDERATED
Version: 10
Row_format: Fixed
Rows: 100000
Avg_row_length: 148
Data_length: 0
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: NULL
Update_time: 1970-01-01 09:33:26
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:  
Comment:  

前のページ  1  2   3  次のページ


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

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