|
|
1
34
我不能说你问题的网络方面。但是UUID对于n层应用程序来说非常有用。PK生成可以分散:每个客户机生成自己的PK,而不存在冲突风险。 而且速度差通常很小。 确保数据库支持高效的存储数据类型(16字节,128位)。 我在Firebird中广泛使用了它们,并推荐使用。 |
|
|
2
29
值得一提的是,我看到一个长时间运行的存储过程(9秒以上)只需从GUID主键切换到整数,运行时间就会下降到几百毫秒。这并不是说 |
|
|
3
23
我可以回答您,在SQL server中,如果您使用uniqueidentifier(GUID)数据类型并使用NEWID()函数创建值,您将由于页面拆分而得到可怕的碎片。原因是使用NEWID()时生成的值不是顺序的。SQL 2005添加了newSequatial()函数来解决这个问题 仍然使用GUID和int的一种方法是在表中使用GUID和int,以便GUID映射到int。GUID在外部使用,但int在DB内部使用 例如
1和2将用于web应用程序中的联接和GUID。这个表将非常窄,查询速度应该非常快 |
|
|
4
10
为什么要将主键与URI结合起来? 为什么不让您的URI键是人类可读的(或不可用的,取决于您的需要),并让您的主索引基于整数,这样您就可以两全其美了。很多博客软件都是这样做的,其中条目的公开id由“slug”标识,数字id隐藏在系统内部。
编辑: Stackoverflow并不完全使用我描述的系统,请参见下面的Guy评论。 |
|
|
5
4
为何不:
哪一个对人类更友好,不会泄露一点点信息? |
|
|
6
4
|
|
|
7
4
我们使用guid作为所有表的主键,因为它兼作MS-SQL-Server复制的RowGUID。当客户突然在世界的另一个地方开了一间办公室时,这就很容易了。。。 |
|
8
3
我认为GUID不会给你带来很多好处。用户讨厌冗长、难以理解的URL。 创建可以映射到URL的较短ID,或强制实施唯一用户名约定( http://example.com/user/brianly ).那里的人 37Signals 顺便说一句,您可以强制数据库从基值开始创建整数ID。 |
|
|
9
3
这还取决于您对应用程序的关注程度。对于n层应用程序,guid/uuid更易于实现,并且更易于在不同数据库之间进行移植。为了生成整数键,有些数据库本机支持序列对象,有些则需要自定义序列表的构造。 整数键(我没有数字)可能为查询和索引性能以及空间使用提供了优势。直接数据库查询也更容易使用数字键,复制/粘贴更少,因为它们更容易记住。 |
|
|
10
2
我使用一个学生管理系统,该系统使用整数形式的UUID。它们有一个表,其中包含下一个唯一ID。 虽然从架构的角度来看,这可能是一个好主意,但它使日常工作变得困难。有时需要进行批量插入,而拥有UUID会使这变得非常困难,通常需要将游标而不是简单的SELECT语句写入。 |
|
|
11
2
我在真实的网络应用程序中尝试了这两种方法。
作为一名开发人员,看到顺序整数,知道一些关于总记录数的信息正在泄漏,感觉有点糟糕,但老实说,大多数人可能不在乎,而且这些信息对我的业务从来都不是很重要。 在我看来,拥有长而丑陋的UUID URL更像是对普通用户的一种关闭。 |
|
|
12
1
|
|
|
13
1
我认为在您的情况下,使用GUID将是更好的选择。它占用更多空间,但更安全。 |
|
|
14
1
YouTube使用11个字符和base64编码,这提供了11^64的可能性,并且它们通常非常易于编写。我想知道这是否会比UUID提供更好的性能。UUID转换为base 64的大小将是我认为的两倍。 更多信息可在此处找到: https://www.youtube.com/watch?v=gocwRvLhDf8 |
|
|
15
-1
只要你使用具有高效存储的DB系统,现在的HDD还是很便宜的。。。
根据模糊性考虑安全性在形成模糊URI和使用表、记录和列定义的安全性构建规范化数据库时,它们非常适合。GUID不能出错,请尝试使用基于整数的id。 |
|
|
blogger13 · 视频租赁店数据库的规范化 1 年前 |
|
|
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
Grenish Rai · Firestore错误“用户文档不存在” 2 年前 |
|
|
Saijo-Shi · PLpgsql中的更新触发器 2 年前 |
|
Dante · Django::配置不当:池不支持持久连接 2 年前 |
|
YouLocalRUser · 删除重复行,保留第一行 2 年前 |