困惑关于INT GUID DATETIME

 

首先我的机器很烂,而且还十分不稳定,没有测试的条件。。。只能提出困惑。

今天才了解GUID做主键从某种意义上来讲的确是比INT来强的。。。举个例子吧。

假如文章表内有一个分类ID。

另一个是分类ID表。主键为INT自增长(传说就是因为INT自增长时为了确定INT所以会制成INSERT时效率不如GUID。好像有这么一回事情呢。)

如果我的删除一个分类的话,而且文章表内的分类ID没有被及时的同时移动。那么你再增加一个分类的时候。就会发现一个很麻烦的情况了。。。原来的文章也错误地被归为你新建分类中了!(假设你删除的刚好是最后一列分类)

那么GUID的话,情况就好多了,永远不可能会有重复值。(当然那个传说中的情况我没有验证过就不当理由了)

不过有一个问题就来了,GUID的排序效率明显就没有INT来得快。而且GUID比较操作也不会有INT来得快。

那么很多情况下以ID[INT]索引并进行分页(就是确定文章先后插入时间)该怎么办?

用DATETIME?。如果DATETIME的精度精不够的话,分页会万分困难[重复值怎么办?]。而且效率还是没有INT来得快。。那么只有折中将DATETIME变为INT?

posted @ 2010-02-26 18:02  飘扬  阅读(199)  评论(0编辑  收藏  举报