是否及时订购了GUID?如果ORDER BY与GUID变量类型一起使用,最近创建的记录会迟到吗?

Ehs*_*n88 10 c# sql guid

是否及时订购了GUID?我的意思是如果你使用带有GUID变量类型的ORDER BY,最近创建的记录会迟到吗?

Kam*_*ski 11

在Windows上,GUID(UUID)是使用UuidCreate从加密随机数生成器创建的.它们是RFC 4122中的版本4 UUID.除非您使用使用UuidCreateSequential创建的旧版本1 GUID,否则不涉及时间戳或以太网卡.

另请参见随机是System.Guid.NewGuid()?(拿两个)

来源:https://stackoverflow.com/a/3011149/1714342


dav*_*v_i 9

一个简单的LINQPad样机可以回答你的问题:

var dictionary = new Dictionary<int, Guid>();

for (int i = 0; i < 5; i++)
    dictionary.Add(i, Guid.NewGuid());

dictionary.OrderBy(d => d.Value);
Run Code Online (Sandbox Code Playgroud)

结果是:

Key Value 
2   3624183d-581a-45bc-9d3d-cafeddaf8585 
0   4b4685c9-f163-4694-ae8c-4b83402a293c 
4   7a14d8e4-d870-4f33-bfb3-f4337b756e18 
1   b93131c7-c0d7-42b4-82b5-e3cc456214a9 
3   cfdc0bc8-7f5a-4601-a927-a759bb9e33c6 
Run Code Online (Sandbox Code Playgroud)

  • 仅仅因为它看起来是随机的并不意味着它实际上是随机的。从词法上讲,它们是无序的,但这并不意味着使用不同的比较器时它们实际上是无序的。然而,@wudzik 提供了有意义的答案,即 guid 是由加密数字生成生成的,而不是使用任何时间序列组件来创建任何类型的隐式顺序。 (4认同)
  • 这根本没有回答这个问题。 (2认同)