2014-04-11 69 views
6

我有一個MariaDB的加萊拉集羣(3個節點),我設置uid自動增加,併成爲表的主鍵作爲爲什麼auto_increment id不會逐個增加,如何設置?

`uid  | int(11)  | NO | PRI | NULL | auto_increment`. 


MariaDB [hello_cluster]> select uid from table order by uid limit 10; 
    +-----+ 
    | uid | 
    +-----+ 
    | 3 | 
    | 6 | 
    | 9 | 
    | 12 | 
    | 15 | 
    | 18 | 
    | 21 | 
    | 24 | 
    | 27 | 
    | 30 | 
    +-----+ 

我嘗試了下面的命令,這是行不通的

alter table uid AUTO_INCREMENT=1 
+0

你是對的。我挖掘了一些更多相關信息。 – user2864740

回答

11

這是設計和MariaDB Galera Cluster - Known Limitations報道:

不要依賴於自動遞增值是連續的。 Galera使用基於自動增量增量的機制來產生獨特的非衝突序列,因此在每個單個節點上,序列將具有空隙

理性在Managing Auto Increments with Multi Masters中解釋,也是爲什麼觀察到的自動增量與簇數相同的步驟。

MySQL的系統變量auto_increment_increment和auto_increment_offset用於管理多主環境中的自動增量序列。使用這些變量,可以設置多主複製,其中每個主節點交錯自動遞增序列,並且羣集中不應發生衝突。無論哪個主人獲得INSERT。

即使沒有集羣,由於事務回滾和已刪除的記錄,依靠自動增量列成爲密集序列也很少是「好」的想法。

+0

非常感謝,我應該在設置自己的羣集之前閱讀這些限制! – haifzhan

相關問題