 |

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