社区
Java EE
帖子详情
uuid和int型的自增在id在写测试时有什么不一样吗?
hlily2005
2008-11-20 01:04:03
最近在学写测试,数据库用sql server 2005, spring框架
过程中发现,测试数据的主键是写不进去的,因为自增的原因,所以把自增标识改成了否,但是这样的测试也是有问题的,数据不能提交到数据库,最后我们老大把主键策略改成了uuid,这样问题就解决了
所以向了解下int型的id和uuid有什么区别吗?
...全文
189
7
打赏
收藏
uuid和int型的自增在id在写测试时有什么不一样吗?
最近在学写测试,数据库用sql server 2005, spring框架 过程中发现,测试数据的主键是写不进去的,因为自增的原因,所以把自增标识改成了否,但是这样的测试也是有问题的,数据不能提交到数据库,最后我们老大把主键策略改成了uuid,这样问题就解决了 所以向了解下int型的id和uuid有什么区别吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hlily2005
2008-11-22
打赏
举报
回复
初学,对一切都很模糊,这个暂时就这样吧,散分结贴,多谢各位了!
kissclf
2008-11-21
打赏
举报
回复
UUID是一个32位长的字符
zou_wei_forever
2008-11-21
打赏
举报
回复
uuid是32位的字符串,是随机生成的,估计一万年后才会有重复
Landor2004
2008-11-21
打赏
举报
回复
[Quote=引用 5 楼 hlily2005 的回复:]
可是在set了id后,测试还是有问题的,原因是因为测试时没有提交到数据库,后来设置了rollback,可以提交到数据库了,不过还是改用了uuid,因为uuid虽然是自增的,但是在数据库的标志里不是自增状态
[/Quote]
楼主似乎对概念不太清楚,可能你们老大还改了别的地方没和你说吧
不管数据库是否设置为自增长的,如果事务没有提交,都不回同步到数据库
这里有个区别,自增长的事务没有提交,自增长也会加1
如果不是自增长的,那么id和uuid是一样的,uuid是随机的,到时候取数据的时候order by的时候会很混乱
zidasine
2008-11-21
打赏
举报
回复
可能你数据库不支持你开始的主键生成策略
wj_18
2008-11-21
打赏
举报
回复
ID字段一般是唯一标示该数据的字段,可以不为自增,但一般都是主键
如你所说如果把自增去掉,数据无法插入,因为原来该字段是自增,无需手动提供。现在你手动提供的数据里肯定没ID字段,导致非空字段为空,数据自然插不进去了
UUID跟INT型数没什么区别,只不过一个是自动生成的
hlily2005
2008-11-21
打赏
举报
回复
可是在set了id后,测试还是有问题的,原因是因为测试时没有提交到数据库,后来设置了rollback,可以提交到数据库了,不过还是改用了uuid,因为uuid虽然是自增的,但是在数据库的标志里不是自增状态
uu
id
和
自增
_
uu
id
作为主键,还是用
自增
呢?
以默认的innodb存储引擎为例:做为主键时,
uu
id
和
自增
相比较,
自增
更适合。原因:1
uu
id
是无序的, 插入数据时,页的位置会发生变化,页分裂,速度慢。2
uu
id
占的空间大,并且innodb中,别的索引还都要包含主键的值,那么每个索引的空间也都会增大,占的空间大,需要读数据时一般会认为需要的io次数多。
自增
也是有缺点的可见my bloghttp://blog.itpub.net/25099...
详解:MySQL
自增
ID
与
UU
ID
的优缺点及选择建议,MySQL有序
uu
id
与自定义函数实现
自增
ID
的优缺点,不适合以
自增
ID
主键作为主键的情况,
UU
ID
介绍说明,
uu
id
是什么,
uu
id
的组成,
UU
ID
作为主键优缺点,mysql8.0的
uu
id
_to_bin()函数分析及实现,mysql有序
UU
ID
实战,自定义
uu
id
,
自增
id
主键与自定义主键的选择建议,JDBCUtilsByDru
id
工具类,mysql数据类
型
binary,mysql函数hex(),mysql函数unhex(),bin_to_binary(
uu
id
(),true)详细说明与实战/示例演示,什么是
uu
id
Mybatis Day2:
自增
ID
、
UU
ID
、雪花
ID
当数据非常大的时候会进行分库分表, 此时
自增
的
id
会带来业务上的问题(不同的表会产生相同的
id
值) 因此可以考虑使用雪花
id
,生成雪花
id
可以使用开源的工具类生成,(例如:hutool) 雪花
id
是一个长度 64 位的 long 类
型
的
id
。如果是小项目可以考虑使用
自增
id
,中大
型
以上的项目就可以使用
UU
ID
和 雪花
ID
。
数据库主键一定要
自增
吗?有哪些场景不建议
自增
?
我们平时建表的时候,一般会像下面这样。 出于习惯,我们一般会加一列
id
作为主键,而这个主键一般边上都有个 AUTO_INCREMENT, 意思是这个主键是
自增
的。
自增
就是 i++,也就是每次都加 1。但问题来了。主键
id
不
自增
行不行?为什么要用
自增
id
做主键?离谱点,没有主键可以吗?什么情况下不应该
自增
?被这么一波追问,念头都不通达了?这篇文章,我会尝试回答这几个问题。主键不
自增
行不行 当然是可以的。比如我们可以把建表 sql 里的 AUTO_INCREMENT 去掉。 然后执行INSERT I
mysql主键
自增
的风险_Mysql主键
UU
ID
和
自增
主键的区别及优劣分析
引言之前有段时间用postgresql 数据库,在上云之后,从
自增
主键变为
uu
id
,感觉
uu
id
全球唯一,很方便。最近用mysql,发现mysql主键都是选择
自增
主键,仔细比较一下,为什么mysql选择
自增
主键,有什么不同。在mysql5.0之前,如果是多个master复制的环境,无法用
自增
主键,因为可能重复。在5.0以及之后的版本通过配置
自增
偏移量解决了整个问题。什么情况下我们希望用
uu
id
1....
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章