0

我们正在运行 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有差距不好吗?我觉得这不应该发生。

4

1 回答 1

1

InnoDB 的这种行为绝对没问题,无需担心。作为 InnoDB 的一个分支,xtradb 最有可能使用 auto_increment 处理算法而不是 InnoDB。INSERT ON DUPLICATE KEY UPDATE它是从(不完全确定)5.1.x 设计的,以便在执行某些操作(如InnoDB 中的操作)时允许更高的并发性。

您将在文档中找到有关此主题的更多信息:InnoDB 中的 AUTO_INCREMENT 处理

于 2013-07-29T07:45:04.627 回答