关于GUID的话题
2009-07-31 13:27
253 查看
这几天,园中关于GUID的话题非常地火热。这其中大多人是觉得既然有了int自动增长类型,为什么还要有GUID。并且对GUID的使用效率进行了探讨,更有热心人还对GUID与int的使用效率进行了测试。
我们先抛开效率不谈,先想一想为什么要设计出这个对象,它究竟有什么用途?
GUID利用特殊的算法,可随机获取一个全域唯一标识,也可以说是全球唯一标识。它的重码率几乎为零,也就是因为如此,它才有具有了特殊的用途,也就是不可替代的作用。
我们大多数人在做项目时,是用不到这个类型的,所以在书上也鲜有介绍。我在一本书上看到,说是GUID是在多数据库使用时,才可以应用,如何应用,书上没有介绍。由于自己从没有做过多数据库的开发,所以也就没有什么感悟。
这两天百度了几篇文章,大多数讲的也是模模糊糊。然而,通过思考之后,突然明白了这其中的奥秘。
要想合理地使用GUID,需要有两个大前题:一个是多数据库;另一个是不使用全域唯一标识不行!
举例:
有一个跨国公司,总部在美国,同时它在世界各地设有分公司。总公司要求各分公司的实时数据,每隔4小时上传总公司一次。
问题是,各分公司的数据结构与总公司是一样的。各分公司是实时工作的,不可能得到总公司数据表的主键值。如果使用int自动增长类型,必然会发生冲突。这时使用GUID类型,就可以完美地解决上述的问题。
如果我们明白了GUID的不可替代性,那它的使用效率也就没有什么可讨论的了。
另外,我觉得这种应用多是在大型机上,效率应当是不成问题的。
我们先抛开效率不谈,先想一想为什么要设计出这个对象,它究竟有什么用途?
GUID利用特殊的算法,可随机获取一个全域唯一标识,也可以说是全球唯一标识。它的重码率几乎为零,也就是因为如此,它才有具有了特殊的用途,也就是不可替代的作用。
我们大多数人在做项目时,是用不到这个类型的,所以在书上也鲜有介绍。我在一本书上看到,说是GUID是在多数据库使用时,才可以应用,如何应用,书上没有介绍。由于自己从没有做过多数据库的开发,所以也就没有什么感悟。
这两天百度了几篇文章,大多数讲的也是模模糊糊。然而,通过思考之后,突然明白了这其中的奥秘。
要想合理地使用GUID,需要有两个大前题:一个是多数据库;另一个是不使用全域唯一标识不行!
举例:
有一个跨国公司,总部在美国,同时它在世界各地设有分公司。总公司要求各分公司的实时数据,每隔4小时上传总公司一次。
问题是,各分公司的数据结构与总公司是一样的。各分公司是实时工作的,不可能得到总公司数据表的主键值。如果使用int自动增长类型,必然会发生冲突。这时使用GUID类型,就可以完美地解决上述的问题。
如果我们明白了GUID的不可替代性,那它的使用效率也就没有什么可讨论的了。
另外,我觉得这种应用多是在大型机上,效率应当是不成问题的。
相关文章推荐
- WTL(3) - 关于WTL的一些话题
- SQL 关于tree存储及提取的话题
- 关于javascript函数的几个话题
- 关于P2P下载软件伤硬盘的话题
- 一个关于STM32定时器CCR无法清零的话题
- 关于INT、GUID与COMB在使用效率上的测试
- 关于GUID
- 关于激进帐户的话题
- 关于XMLBeans/shcema,不得不说的话题
- 关于SharePoint 2010体系架构的几个话题
- 关于自学的一些话题
- 关于URL的话题与对网站的影响
- 转载:天涯——散文天下——《关于年轻的流氓无产者的话题》——作者:南方孤驴
- 一个c++程序员关于跳槽话题的随想
- 关于SharePoint 2010体系架构的几个话题
- 关于Hazard Pointers的话题
- 【Expression 序列化】WCF的简单使用及其Expression Lambada的序列化问题初步解决方案(四)——关于Guid的问题
- 关于error LNK2001: unresolved external symbol _GUID_Download类的错误解决
- 关于UUID和GUID,教你如何使用JDK自带的UUID生成主键。
- 关于GUID