1
1
我已经将UUID用于智能客户端在线/离线存储和数据同步,以及我知道在某个时刻必须合并的数据库。我一直使用char(36)或char(32)(无破折号)。与varchar相比,性能略有提高,几乎所有数据库都支持char。我从未尝试过二进制或bigint。需要注意的一点是,如果不使用36或32个字符,char将填充空格。也就是说,不要编写将对象ID设置为“test”的单元测试,然后尝试在数据库中找到它。;) |
2
3
如果您确实设置了使用UUID,那么我将把它存储在二进制(16)列中。像2X Bigint这样的东西管理起来会很麻烦。另外,我也听说过有人反转它们,因为同一台机器上的UUID的开始在开始时是相同的,而不同的部分在结束时,所以如果反转它们,您的索引将更有效。 当然,我的直觉告诉你应该使用自动递增整数,除非你有充分的理由使用uuid。一个很好的原因是在不同的数据库中生成唯一的键。另一种选择是,您计划拥有比int可以存储的记录更多的记录。虽然没有多少应用程序真正需要这样的东西。当不使用整数作为密钥时,不仅会损失很多效率,而且使用它们也会比较困难。它们太长,无法输入,在URL中传递它们会使URL非常长。所以,如果你需要的话,带上UUID,但是尽量远离它。 |