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

