MySQL 無原生 DBLink,**FEDERATED 引擎**通過建立「映射表」實現遠程表透明訪問:本地只存元數據,查詢時通過 MySQL 協議轉發到遠程服務器執行並返回結果。
(文中包含完整 43 字段的 CREATE TABLE 定義,含各權限枚舉、SSL 字段等)
重啟服務:service mysql restart
SELECT COUNT(*) FROM links; +----------+ | COUNT(*) | +----------+ | 12 | +----------+ 1 row in set (0.00 sec)
| 維度 | 說明 |
|---|---|
| 索引 | **無法使用遠程索引**,全表掃描遠程表再傳輸 |
| 事務 | **不支持事務**,自動提交模式 |
| 並發 | 每個查詢打開一個連接,高併發易耗盡遠程 max_connections |
| WHERE 下推 | 5.6+ 部分支持條件下推,但不穩定 |
| DDL | ALTER TABLE 只修改本地元數據,**不同步遠程結構** |
| 適用場景 | 小表、低頻、異構查詢、報表同步、數據遷移輔助 |
| 不適用 | 大表關聯、高併發 OLTP、需事務一致性、頻繁寫入 |
REPLACE INTO cache SELECT * FROM federated_table,應用查緩存表max_connections 留足餘量DROP/CREATE 聯邦表| 方案 | 優點 | 缺點 | 適用 |
|---|---|---|---|
| FEDERATED | 透明 SQL、無中間件 | 性能差、無索引、無事務 | 小表異構查詢 |
| 應用層雙連接 | 可控、可緩存、可事務 | 代碼複雜、雙寫一致性難 | 核心業務跨庫 |
| 數據同步 | 本地查詢極快、解耦 | 延遲、同步邏輯複雜 | 報表、數倉、異地備份 |
| ShardingSphere/MyCat | 中間件透明分片、讀寫分離 | 引入組件、運維成本 | 分庫分表架構 |
FEDERATED 是 MySQL 實現「跨服務器查詬」的**輕量級方案**:**源端建表授權 → 目標端啟用插件 → 創建映射表指定 CONNECTION**。但**性能陷阱極多**(無索引下推、無事務、連接開銷),**僅限小表、低頻、非核心鏈路**使用。核心業務請採用「數據同步 + 本地查詢」或「中間件路由」架構。