2009-09-24 56 views
3

最近我被告知添加auto_increment主鍵到我們所有的表,因爲我們的數據庫將被複制(主 - 主解決方案)。我們所有的表都有一些主鍵,但並不是所有的表都是自動增加的。autoincrement主鍵和複製

我查看了關於複製的mysql文檔,我沒有發現任何跡象表明這(auto_increment主鍵)是必需的。那麼,我錯過了什麼?數據庫將要被複制時,是否有更好的自動增量主鍵?

回答

4

自動增量主鍵絕對不是需要,但他們的你即將與整數主鍵和多主機複製打交道時,有對付時髦娛樂的更直接和簡單的方式之一。您需要確保每個主機上新插入的行都能夠唯一標識。您不希望服務器A在服務器B插入第1行的同時插入第1行,因爲當它們將日誌傳送給對方時,它們在嘗試插入彼此的行時都會抱怨重複鍵。

您需要閱讀auto_increment_increment和auto_increment_offset配置設置,這將使自動增量功能可以在多主設備下正常工作。

此外,使用自然主鍵的表有時(但不總是)對於多主複製來說是絕對安全的。這完全取決於插頁的頻率和性質。

這就是說,多主人是最後的手段和壞主意,除非你有一個經驗豐富的MySQL DBA的員工。我從經驗中這樣說,因爲我的僱主在生產中有一個三服務器多主複製循環。