sql >> データベース >  >> RDS >> Mysql

MySQLクロスサーバー選択クエリ

    サーバーの1つでフェデレーションテーブルを使用するのはどうですか?クエリで使用するリモートテーブルに基づいてフェデレーションテーブルを作成し、データベースがすべてローカルであるかのようにクエリを実行します。以下のMySQLサイト の例

    FEDERATEDテーブルを使用する手順は非常に簡単です。通常、同じホストまたは異なるホストの両方で2台のサーバーが実行されています。 (FEDERATEDテーブルで、同じサーバーによって管理されている別のテーブルを使用することは可能ですが、そうする意味はほとんどありません。)

    まず、FEDERATEDテーブルを使用してアクセスするリモートサーバー上のテーブルが必要です。リモートテーブルが連合データベースにあり、次のように定義されているとします。

    CREATE TABLE test_table (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        name   VARCHAR(32) NOT NULL DEFAULT '',
        other  INT(20) NOT NULL DEFAULT '0',
        PRIMARY KEY  (id),
        INDEX name (name),
        INDEX other_key (other)
    )
    ENGINE=MyISAM 
    CHARSET=latin1;
    

    この例ではMyISAMテーブルを使用していますが、テーブルは任意のストレージエンジンを使用できます。

    次に、リモートテーブルにアクセスするためのFEDERATEDテーブルをローカルサーバーに作成します。

    CREATE TABLE federated_table (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        name   VARCHAR(32) NOT NULL DEFAULT '',
        other  INT(20) NOT NULL DEFAULT '0',
        PRIMARY KEY  (id),
        INDEX name (name),
        INDEX other_key (other)
    )
    ENGINE=FEDERATED
    DEFAULT CHARSET=latin1
    CONNECTION='mysql://[email protected]_host:9306/federated/test_table';
    

    (MySQL 5.0.13より前では、CONNECTIONではなくCOMMENTを使用してください。)



    1. AWSRDSで一般ログとエラーログを有効にする方法

    2. SQLServerでユーザー定義関数を暗号化する方法

    3. setFetchSize()をいつ何を指定する必要がありますか?

    4. 連続番号でSQLを更新する