10bet网址
MySQL 5.6リファレンスマニュアル
本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb
HTML下载(TGZ)- 7.2 mb
HTML下载(邮政编码)- 7.2 mb


15.8.3 federatedストレージエンジンの注記とヒント

联邦ストレージエンジンを使用するときは,次の点に注意することをお勧めします。

  • 联邦テーブルをほかのスレーブに複製してもかまいませんが,スレーブサーバーが连接文字列(またはmysql.serversテーブルの行)で定義されたユーザーとパスワードの組み合わせを使用してリモートサーバーに接続できることを確認する必要があります。

次の項目は,联邦ストレージエンジンがサポートしている機能とサポートしていない機能を示します。

  • リモートサーバーはMySQLサーバーでなくてはいけません。

  • 联邦テーブルがポイントするリモートテーブルは,联邦テーブルを介してそのテーブルにアクセスを試みる前に,存在している必要があります

  • ある联邦テーブルがほかのテーブルをポイントすることは可能ですが,ループを作らないように注意する必要があります。

  • 联邦テーブルは本質的にインデックスをサポートしていません。テーブルへのアクセスがリモートで処理されるため,リモートテーブルがインデックスをサポートします。同等のMyISAMやほかのテーブルからのインデックス定義がサポートされていない可能性があるため,联邦テーブルを作成するときは注意を払うようにしてください。たとえば,VARCHAR文本,またはカラムにインデックスプリフィクスを付けた联邦テーブルを作成すると,失敗します。MyISAMの次の定義は有効です。

    Create table ' t1 ' (' a ' varchar (100), unique key (' a ' (30)))

    この例のキープリフィクスは联邦エンジンと互換性がないため,同等のステートメントは失敗します。

    Create table ' t1 ' (' a ' varchar (100), unique key (' a ' (30))) engine = federated connection =' mysql://127.0.0.1:3306/ test / t1 ';

    可能であれば,これらのインデックスの問題を回避するため,リモートサーバーとローカルサーバーの両方にテーブルを作成する場合,カラムとインデックスの定義を分けるようにしてください。

  • 内部的に,実装は选择插入更新,および删除を使用しますが,处理程序は使用しません。

  • 联邦ストレージエンジンは,选择插入更新删除截断表,およびインデックスをサポートしています。删除表を除いて,ALTER TABLEや,テーブルの構造に直接影響を与えるデータ定義言語ステートメントをサポートしていません。現在の実装は,プリペアドステートメントを使用しません。

  • 联邦插入……关于重复密钥更新ステートメントを受け入れますが,重複キー違反が起こった場合,ステートメントはエラーで失敗します。

  • 大量の挿入を実行する場合(たとえば,插入……选择……ステートメント)の联邦テーブルのパフォーマンスは,選択された各行が联邦テーブルで個々の插入ステートメントとして処理されるため,ほかのテーブルタイプに比べて低下します。

  • トランザクションはサポートされていません。

  • 联邦は,複数の行がバッチでリモートテーブルに送られるように大量挿入処理を実行します。これでパフォーマンスは向上し,リモートテーブルは改善を実行できます。また,リモートテーブルがトランザクション対応の場合,エラーが発生したときにリモートストレージエンジンはステートメントロールバックを適切に実行できます。この機能には次の制限があります。

    • 挿入のサイズは,サーバー間の最大パケットサイズを超えることはできません。挿入がこのサイズを超えた場合,複数のパケットに分割され,ロールバック問題が発生する可能性があります。

    • 大量挿入処理は插入……关于重复密钥更新では起こりません。

  • 联邦エンジンは,リモートテーブルが変わったかどうかを知る方法がありません。その理由は,このテーブルが,データベースシステム以外の何かによって決して書き込まれることのないデータファイルのように動作する必要があるためです。リモートデータベースに変更が加えられた場合に,ローカルテーブルのデータの完全性が損なわれる可能性があります。

  • 连接文字列を使用する場合,パスワードに'@'文字を使用できません。创建服务器ステートメントを使用してサーバー接続を作成することで,この制限を回避できます。

  • insert_idおよび时间戳オプションはデータプロバイダには伝達されません。

  • 联邦テーブルに対して発行された删除表ステートメントは,ローカルテーブルだけを削除し,リモートテーブルは削除しません。

  • 联邦テーブルはクエリーキャッシュでは機能しません。

  • ユーザー定義のパーティション化は,联邦テーブルではサポートされていません。