Mysql
同時跨多個數據庫執行事務
我有一個經常執行許多操作的系統,並且正在考慮將數據庫拆分一下以分散負載並希望加快系統速度。
令人擔心的是,通過拆分這些數據庫,事務可能會變得不同步。
我的問題是,如果我拆分我的數據庫。我還能同時在 3 到 6 個數據庫上執行事務嗎?意思是,如果有某種錯誤,同時將它們全部回滾?
編輯:我正在考慮拆分數據庫,因為某些區域會被頻繁呼叫但彼此無關。
編輯2:數據庫是指一台單獨的機器。我現在看到的實例可能是我應該使用的詞。
如果您指的是 MySQL 的一個實例(顯然是在單個伺服器上),那麼拆分為多個
CREATE DATABASE ...
對性能或事務沒有影響(有利或不利),對查詢語法的影響很小。如果您的意思是“分片”,其中不同的伺服器保存數據的不同部分——例如“使用者”的子集,那麼事務將不起作用。
相反,研究“XA”作為跨多個實例進行事務的方法。
如果您需要
SELECT
從多個分片中的每一個中獲取行,請參閱 MariaDB 的蜘蛛引擎。或者您可以手動創建多個連接,從每個伺服器收集數據,然後將資訊合併在一起。(這不是技術“ACID”意義上的“交易”。)