MySQL 跨伺服器選擇查詢:詳細指南
當使用地理上分散的多個MySQL 伺服器時,需要跨伺服器伺服器資料操縱出現。其中一個場景是需要從一台伺服器上的表中選擇資料並將其插入到相距數英里的另一台伺服器上的表中。
為了解決這個挑戰,MySQL 提供了建立 SSH 隧道的功能,以促進安全伺服器之間的通訊。然而,需要注意的是,MySQL 不支援透過 SSH 隧道直接跨伺服器存取表。
相反,一個名為聯合表的強大功能為這個問題提供了一個優雅的解決方案。使用聯合表,您可以建立代表另一台伺服器上的遠端表的本機代理表。這允許您對本地聯合表執行查詢,就好像遠端表實際存在於本機伺服器上一樣。
建立聯合表
建立聯合表,您必須先在其所在的伺服器上定義遠端表。建立遠端表後,您可以使用以下語法在本機伺服器上建立聯合表:
CREATE TABLE federated_table ( <column definitions> ) ENGINE=FEDERATED CONNECTION='mysql://<username>@<remote_host>:<port>/<database>/<table_name>';
在此範例中,CONNECTION 屬性指定遠端表的詳細信息,包括資料庫名稱、表名、使用者名、密碼。
跨伺服器執行查詢
建立聯合表後,您可以執行跨伺服器選擇查詢,就像遠端表是本機表一樣。例如,考慮以下查詢:
SELECT * FROM federated_table WHERE <condition>;
此查詢將從聯合表的 CONNECTION 屬性中指定的遠端表擷取資料。查詢結果將在本地可用,就像從本機伺服器上的表取得一樣。
其他注意事項
以上是MySQL如何有效率地進行跨伺服器SELECT查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!