我们正在运行Percona XtraDB群集,群集中有4台计算机。我注意到我们的主键列是AUTO_INCREMENT列,其中包含随机数字间隙。例如:
id created_at title artist album
1 1375074427 Night Train Jason Aldean NULL
5 1375074429 Open Arms JOURNEY NULL
9 1375074429 LIFT ME UP FIVE FINGER DEATH PUNCH NULL
12 1375074430 Into the Mystic Van Morrison NULL
16 1375074430 MARY JANES LAST DANCE TOM PETTY NULL
20 1375074430 EVERLONG FOO FIGHTERS NULL
21 1375074433 THE ZOO SCORPIONS NULL
25 1375074433 (Don't Fear) The Reaper Blue Oyster Cult NULL
28 1375074437 Mambo Italiano Rosemary Clooney The Big Night
32 1375074437 HOLY GRAIL JAY Z / JUSTIN TIMBERLAKE NULL
36 1375074437 REAL WORLD MATCHBOX 20 NULL
37 1375074438 Smile Uncle Kracker NULL
41 1375074443 SOMEONE LIKE YOU ADELE NULL
45 1375074444 STAY RIHANNA FT MIKKY EKKO NULL
49 1375074444 Turn Your Radio On The Statler Brothers Today's Gospel Favorites
52 1375074444 Hold The Line Toto NULL
56 1375074444 Reach For The Sky Firehouse NULL
57 1375074448 Through Glass Stone Sour NULL
61 1375074448 Through Glass Stone Sour NULL
65 1375074448 Love%20On%20Top Beyonc%E9 4%20(Deluxe%20Edition)
我很好奇为什么会这样。我正在阅读我们的机器上启用的innodb_locks_unsafe_for_binlog选项,我觉得它与此有关。但我想确定这没关系。
我们遇到了随机死锁,我想删除这个配置项作为原因,因为它应该有助于防止我读过的死锁。
这样的PK有差距吗?我觉得这不应该发生。
答案 0 :(得分:1)
InnoDB的这种行为绝对没问题,无需担心。作为InnoDB的一个分支,xtradb最有可能使用auto_increment处理算法而不是InnoDB。它的设计来自(不完全确定)5.1.x,以便在InnoDB中进行某些操作(如INSERT ON DUPLICATE KEY UPDATE
操作时)实现更高的并发性。
您可以在文档中找到有关此主题的更多信息:AUTO_INCREMENT Handling in InnoDB