gpt4 book ai didi

java - 如何使用 UUID 维护插入顺序

转载 作者:可可西里 更新时间:2023-11-01 07:08:11 26 4
gpt4 key购买 nike

在一个宠物项目中,我开始使用 UUID。该应用程序相当简单,它使用 binary(16) 主键在 MySQL 数据库中添加数据。

为了生成 PK,我使用了 JUG这样:

UUID uuid = Generators.timeBasedGenerator().generate();

然后我将它转换为字节数组:

byte[] b = UUIDUtil.asByteArray(uuid);

现在的问题是我不知道行的插入顺序。如果我按 ID 对行进行排序,一些最近的行排在较早的行之前(根据 DATETIME 字段)

我应该怎么做才能保持行的插入顺序(用于排序目的)?

问题的说明,UUID 按 ASC 排序,我希望 created_at 的顺序相同。

select hex(id), created_at from myTable order by id

+----------------------------------+---------------------+
| hex(id) | created_at |
+----------------------------------+---------------------+
| 0913FF1FC53911E39D8D6F7C246EE143 | 2014-04-16 09:30:50 |
| 09378CB1C53911E39D8DD94CAEA8D23F | 2014-04-16 09:30:50 |
| 094A9F83C53911E39D8DDF087D0ED31A | 2014-04-16 09:30:51 |
| 0CBE40D5C0B711E38172B9CB0C485EE3 | 2014-04-10 15:50:17 |
| 0CBF5247C0B711E3817277CAF5E1D5B5 | 2014-04-10 15:50:17 |
| 0CC03CA9C0B711E381721BA12057F9E2 | 2014-04-10 15:50:17 |
| 0CC14E1BC0B711E381720505D5FFDCD3 | 2014-04-10 15:50:17 |
| 0CC2387DC0B711E38172F9A6B29EB613 | 2014-04-10 15:50:17 |
| 0CC349EFC0B711E381723D1DB8515E3F | 2014-04-10 15:50:17 |
| 0CC43451C0B711E3817257D8AFFD09B8 | 2014-04-10 15:50:17 |
| 0CC545C3C0B711E381729B3CB87CD707 | 2014-04-10 15:50:17 |
| 0CC8C835C0B711E38172CDA11992F9BC | 2014-04-10 15:50:17 |
| 0E33A6B5C08B11E396829782BD5365D2 | 2014-04-10 10:35:22 |
| 0E368CE7C08B11E39682A9F63D5EF0E6 | 2014-04-10 10:35:22 |
| 0E383A99C08B11E396825D6048BFC696 | 2014-04-10 10:35:22 |
| 128DD6C5C53911E39D8D7577DB523A2C | 2014-04-16 09:31:06 |
+----------------------------------+---------------------+

编辑

澄清一下,我当然知道并习惯了auto_increment PK,我只是想看看没有它们如何工作。 (以防万一!)

最佳答案

请看这个链接 https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/

这里作者重新排列了 UUID 使其顺序,为此他创建了一个 MySQL 用户定义函数。

关于java - 如何使用 UUID 维护插入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23104610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com