社区
C#
帖子详情
关于主键 GUID 自增int 代码维护的int 没分 感兴趣的欢迎讨论下
qiushuangju1
2012-05-16 12:48:19
大家觉得主键是用GUID 还是自增int 还是代码维护的int 比较好呢。。。
当然 我们GUID或是自增int 还是代码维护的Int 都不是万能的 更加欢迎讨论一下 什么时候 用这些比较好。。。。。。。
...全文
174
9
打赏
收藏
关于主键 GUID 自增int 代码维护的int 没分 感兴趣的欢迎讨论下
大家觉得主键是用GUID 还是自增int 还是代码维护的int 比较好呢。。。 当然 我们GUID或是自增int 还是代码维护的Int 都不是万能的 更加欢迎讨论一下 什么时候 用这些比较好。。。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiushuangju1
2012-05-18
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
如果有并库的需求,guid 确实是个方便的选择。但是 guid 是有代价的,由于 guid 是随机值,用作聚簇索引时,会产生很多碎片,并且会降低空间利用率。对性能和尺寸的影响也是一个要考虑的因素。这里有一个链接,供楼主参考:使用NEWSEQUENTIALID解决GUID聚集索引问题
[/Quote]
谢谢 。。。。。
qiushuangju1
2012-05-18
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
如果这个字段被设置为主键,那么数据库系统本身会保证它不重复。换言之,无论你怎么用“代码维护”,要不然会插入失败,要不然就绝对不会重复。为此,为什么要“代码维护”呢。GUID不但可以保证它作为主键不重复,而且可以保证它在全局环境中也不重复(重复的概率可以忽略不计),为此,你要考虑你有没有这样的需要。比如你可能会合并两个数据库表中的数据,你应该考虑GUID。但是显然GUID对最终用户不友善。比如QQ……
[/Quote]
我说的代码维护 就是主键不是业务数据 插入时 保证不重复 不能出现因为主键重复的原因插入失败,至于GUID 我想拿它给用户看或者输入的人 还没出生 至少我没见过
kqyx_cn
2012-05-16
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
重要的业务数据
都不要应Guid和自增长的int
[/Quote]
赞同这个。如果仅是用来标识记录,用哪个都无所谓,看实际需要。
zhujiawei7
2012-05-16
打赏
举报
回复
这个值得关注
IT-Style
2012-05-16
打赏
举报
回复
我有的时候自增长的Int和Guid一起用.
anzhiqiang_touzi
2012-05-16
打赏
举报
回复
重要的业务数据
都不要应Guid和自增长的int
nuoyidadi
2012-05-16
打赏
举报
回复
不错,我正在对你说的东西好好考虑呢!
theillusion
2012-05-16
打赏
举报
回复
如果有并库的需求,guid 确实是个方便的选择。但是 guid 是有代价的,由于 guid 是随机值,用作聚簇索引时,会产生很多碎片,并且会降低空间利用率。对性能和尺寸的影响也是一个要考虑的因素。这里有一个链接,供楼主参考:
使用NEWSEQUENTIALID解决GUID聚集索引问题
threenewbee
2012-05-16
打赏
举报
回复
如果这个字段被设置为主键,那么数据库系统本身会保证它不重复。换言之,无论你怎么用“代码维护”,要不然会插入失败,要不然就绝对不会重复。为此,为什么要“代码维护”呢。GUID不但可以保证它作为主键不重复,而且可以保证它在全局环境中也不重复(重复的概率可以忽略不计),为此,你要考虑你有没有这样的需要。比如你可能会合并两个数据库表中的数据,你应该考虑GUID。但是显然GUID对最终用户不友善。比如QQ如果被设计为让每个用户登录时输入一个GUID……总之你应该根据需要决定。
SQLServer分页存储过程(
主键
为
GUID
)
SQLServer分页存储过程通常有多个版本,但是效率上有高有低,经过测试排名为: 版本1:select max 版本2:row_number 版本3:not in 版本4:临时表 版本5:中间变量 如果
主键
为
int
,请使用版本1 如果
主键
为
guid
,请使用版本2
数据库
主键
设计原则 设计数据库主健
数据库
主键
设计原则:我在设计
主键
,会采用字符型的.不采用自动递增,在新增记录时,系统生成
主键
值.一般为全数字进行存入,至于
主键
值的生成规则,可以按需求进行规则定义.如果没有特殊的要求,只是为了保持唯一,可以定义一个字段存放一个数值.在生成时,自动加一.然后再存回去.这也比从一个表中寻找最大值要来的快吧.
mysql
guid
int
_MySql中测试
GUID
与
Int
自增
主键
性能对比 总结适用场景【转】
MySql中测试
GUID
与
Int
自增
主键
性能对比 总结适用场景【转】一. 创建以下三个数据表:
int
主键
自增
表,
guid
主键
表, 关联以上两个表的关系表tbl_test_relationCREATE TABLE `tbl_test_
int
` (`id`
INT
(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(50) NULL DEFAULT NULL...
数据库
主键
设计中
自增
ID和
Guid
的比较
自增
ID与
Guid
的比较
数据库中
主键
自增
int
到头了怎么办
增加
主键
的数据类型大小:将
INT
改为BIG
INT
。重新设置
自增
起始值:删除旧记录并重置
自增
计数器。使用 UUID 或
GUID
作为
主键
:适用于不需要整数
主键
的情况。分库分表:适用于数据量非常大的情况。定期归档数据:减少主表的数据量,延长
主键
的增长周期。
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章