| 限制項 | 說明 |
|---|---|
| 存儲引擎 | 僅 InnoDB 支持 XA 事務 |
| 架構模式 | 僅實現 外部 XA(MySQL Server 為 RM,客戶端為 TM),未實現內部 XA |
| XA START | 不支持 JOIN、RESUME 子句 |
| XA END | 不支持 SUSPEND [FOR MIGRATE] 子句 |
| xid.bqual 唯一性 | 全局事務中每個 XA 分支的 bqual 必須不同(MySQL 額外限制,非 XA 標準) |
| PREPARED 後客戶端斷開 | Server 會自動回滾,即使已 PREPARED;需修改 Binlog 機制才能保留提交/回滾選擇 |
| Server 崩潰恢復 | 重啟後可正常完成 PREPARED 事務 |
內部 XA 需要存儲引擎在 表處理程序層 實現兩階段提交(2PC),目前僅 InnoDB 具備此能力。若事務跨越多引擎(如 InnoDB + MyISAM),MySQL 無法協調原子提交。
bqual 全局唯一(可包含節點 ID + 序號)MySQL 官方文檔明確標註:內部 XA 實現不完整,生產環境跨引擎 XA 事務極高風險。