1
100
guid与顺序guid
F3818D69-2552-40B7-A403-01A6DB4552F7
如何从C代码生成它们:
|
2
47
我可能在这里遗漏了一些东西(如果是的话,请随时纠正我),但是对于主键使用顺序的guid/uuid,我看不到什么好处。 这个 指向 在自动递增整数上使用guid或uuid的方法是:
不幸的是,利用你的建议,你输了 全部的 那些东西。 所以,是的。你把吉他做得更好了。但是在这个过程中,你已经把使用它们的所有原因都抛弃了。 如果你 真的? 要提高性能,请使用标准的自动递增整数主键。这提供了您描述的所有好处(以及更多),同时在几乎所有方面都优于“顺序GUID”。 这很可能会被遗忘,因为它没有具体回答你的问题(显然是精心设计的,这样你就可以自己立即回答),但我觉得这是一个更重要的一点提出。 |
3
19
正如Massimogentini已经说过的,使用UuidCreateSequence(在代码中生成guid时)可以提高性能。但似乎缺少一个事实:SQL Server(至少是Microsoft SQL 2005/2008)使用了相同的功能,但是:guid的比较/排序在.NET和SQL Server上有所不同,这仍然会导致更多的IO,因为guid的排序不正确。 为了为SQL Server生成正确排序的guid(排序),必须执行以下操作(请参见 comparison 细节):
|
4
4
如果你
需要
要使用顺序guid,SQL Server 2005可以使用
然而 因为guid的基本用法是生成无法猜测的键(或备用键)(例如,为了避免人们在get上传递猜测的键),所以我看不出它们有多适用,因为它们很容易被猜测到。 从 MSDN :
|
5
4
请参阅本文: ( http://www.shirmanov.com/2010/05/generating-newsequentialid-compatible.html ) 尽管mssql使用相同的函数生成newsequencealids (uuidcreateSequential(out-guid-guid)),mssql反转第3和第4字节模式,这与在代码中使用此函数时得到的结果不同。Shirmanov演示了如何获得与MSSQL创建的结果完全相同的结果。 |
6
3
退房 COMBs 作者:JimmyNilsson:一种guid类型,其中许多位被类似时间戳的值替换。这意味着可以对组合进行排序,当用作主键时,插入新值时,索引页拆分会减少。 |
7
2
好吧,我自己在设计和生产中终于达到了这一点。 我生成一个梳状guid,其中32位的上限是基于UNIX时间的33到1位(以毫秒为单位)。因此,每2毫秒就有93个随机位,每106年就会发生一次高位翻转。comb-guid(或类型4-uuid)的实际物理表示是128位的base64编码版本,它是一个22个字符的字符串。 在Postgres中插入时,完全随机UUID和梳状guid之间的速度比对梳状guid有利。 组合GUID是 2X 在我的硬件上比多次测试更快,达到了一百万次记录测试。记录包含id(22个字符)、字符串字段(110个字符)、双精度和int。 在ElasticSearch中,两种索引方法之间没有明显的区别。我仍然会使用梳状guids,以防内容进入链中任意位置的btree索引,因为内容与fed时间相关,或者可以在id字段上预先排序,以便 是 时间相关,部分顺序,它将加快。 很有趣。 下面是制作COMBUGID的Java代码。
} |
8
2
我使用实体框架测量了guid(集群和非集群)、顺序guid和int(标识/自动增量)之间的差异。与具有标识的int相比,序列guid的速度惊人。 Results and code of the Sequential Guid here . |
9
1
我不认为需要唯一的密钥是可猜测的或不可猜测的,从Web用户界面或其他部分传递它们本身就是一个糟糕的实践,我也不认为,如果您有安全问题,如何使用guid可以改善事情(如果这是问题,使用真正的随机数生成器使用框架的适当加密函数)。
|
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
Max J. · 用整数作为键将dict写入csv 2 年前 |