簡介
資料庫通常涉及資料駐留在多個伺服器上的場景系統。為了克服這項挑戰,SQL Server 和 Oracle 等供應商分別引進了連結伺服器和 dblink 等概念。但是如果您使用 MySQL 該怎麼辦?是否有等效的功能可用?
MySQL 的 FEDERATED 引擎:了解概念
雖然 MySQL 本身不支援 SQL Server 連結伺服器或 Oracle dblink 的精確副本,FEDERATED 引擎提供類似的功能。 FEDERATED 引擎可讓您像存取本機表一樣存取其他 MySQL 實例中的資料表。
設定 FEDERATED 引擎 (MySQL 5.5)
[mysqld] federated = ON
CREATE FOREIGN DATA SOURCE example_ds OPTIONS ( LINK 'mysql://user:pass@host:port/dbname' );
CREATE TABLE example_local LIKE example_remote;
使用FEDERATED Table
設定後,您可以透過本機包裝表存取遠端 MySQL 表,就像存取本機表一樣。例如:
SELECT * FROM example_local;
限制
雖然FEDERATED 引擎提供類似連結伺服器的功能,但它也有限制:
僅支援MySQL資料來源:與SQL Server的Linked Server不同,它無法連線到非MySQL 供應商。
效能注意事項:
跨多個伺服器的查詢會影響效能。 替代方案:MySQL 代理程式如果您的要求涉及連接到非 MySQL 資料來源,請考慮 MySQL Proxy。雖然它不遵循與連結伺服器/dblink 相同的架構,但它提供了類似連接挑戰的解決方案。以上是MySQL 是否提供相當於存取遠端資料庫的連結伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!