作者:完结那份友谊吧_586 | 来源:互联网 | 2023-08-08 16:00
都说Guid到太阳熄灭的那一天也不会重复。那sqlserver是通过什么机制保证guid的唯一性,全球的sqlserver服务器以及其他不是sqlserver的guid生成器是如何保证guid
都说Guid到太阳熄灭的那一天也不会重复。
那sqlserver是通过什么机制保证guid的唯一性,全球的sqlserver服务器以及其他不是sqlserver的guid生成器是如何保证guid不会有任何两个重复?
9 个解决方案
GUID好像是根据机器上网卡的MAC地址再加上一定的算法生成的唯一的序列。
因全世界所有网卡的MAC地址都是唯一的,且在自己的机器上再加上时间等
因素生成。GUID肯定是唯一的。
在一个合理的时间范围内,不会重复。
他的算法,至少有两个主要的参数,一个是时间,另外一个就是你机器的软、硬件信息,用来定位你使用的电脑。
同一台电脑不可能在同一时间运行两个GUID的算法,因此,你可以认为他是唯一的。
1. 一个GUID为一个128位的整数(16字节),在使用唯一标识符的情况下,你可以在所有计算机和网络之间使用这一整数。
2. GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:337c7f2b-7a34-4f50-9141-bab9e6478cc8 即为有效的 GUID 值。
3. 世界上(Koffer注:应该是地球上)的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。
4. 在 Windows 平台上,GUID 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。
用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字
设计目的就是为了不重复,楼主还想怎样?
计算机网卡的MAC地址本身就不会重复,除非买到盗版网卡。
还有一问,大家经常用Guid作表的主键吗? 我感觉用Guid作主键很不方便,
主要是排序,分页方面,还有客户端在使用时,无法表示出有意义的内容。
没太大的意义,用这个做主键,还不如用自增ID做主键。