java uuid 排序_java – 如何使用UUID维护插入顺序

在宠物项目上,我开始使用UUID.

应用程序非常简单,它使用二进制(16)主键在

MySQL数据库中添加数据.

为了生成PK,我用这种方式使用JUG:

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

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

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

现在的问题是我不知道我的行的插入顺序.

如果我按ID对行进行排序,那么最近的行会出现在较旧的行之前(根据DATETIME字段)

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

问题的插图,UUID按ASC排序,我期望created_at的顺序相同.

通过id从myTable顺序中选择hex(id),created_at

+----------------------------------+---------------------+

| 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,我只是想看看没有它们如何工作是可行的. (万一是!)

最佳答案 请看这个链接

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值