社区
Java SE
帖子详情
关于jdbc的commit
shadowlin
2008-05-07 03:04:12
1.我觉得手动commit的程序比用autocommit的要快些,是我的错觉还是有什么原因?
2.我一次更新n条记录,放在一个transaction里,记录里有一个最后更新时间的字段.那是不是这n条记录就都是一个最后更新时间?
3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢?
PS:我用的mysql
希望熟悉jdbc的高手解答一下~谢谢
...全文
282
6
打赏
收藏
关于jdbc的commit
1.我觉得手动commit的程序比用autocommit的要快些,是我的错觉还是有什么原因? 2.我一次更新n条记录,放在一个transaction里,记录里有一个最后更新时间的字段.那是不是这n条记录就都是一个最后更新时间? 3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢? PS:我用的mysql 希望熟悉jdbc的高手解答一下~谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shadowlin
2008-05-07
打赏
举报
回复
我数据量不是很大,一般100多条,有的时候1000多条吧..
但是我每次commit间还要有好多处理,至少需要10s...我生成最后修改时间的程序是写在dao里的.
to javazhuobin :
你说的那种我也是这么想的,但是似乎从结果上来看不象啊.
胡矣
2008-05-07
打赏
举报
回复
1.到底速度如何不是用感觉的 用工具具体测试一下 另外 数据很少的话 应该看不出来的.
2.数据很少时间就是一致的 数据量很大的话 可能会有一点差别 电脑也要一点点执行的吧
3.请问你到底是用几个COMMIT?数据量是否比较少?
刘彬彬
2008-05-07
打赏
举报
回复
commit是为了保证数据的一致性,在内存中将为每个客户机建立工作区,客户机对数据库进行的操作处理的失误都在工作区内完成,当输入commit命令后,工作区的修改内容才写到数据库上,称为物理写入,这样就可以保证在任意的客户机上没有物理提交修改之前,别的客户机读区的后台数据库是数据完整的.
n条记录的更新时间当然是一个一致的时间点.我不太了解数据库底层的原理,但逻辑上来看,应该是以逻辑空间里的最后一个记录的更新时间为准.
呵呵,其实你用2种方法commit一个相同的逻辑空间,2者的速度应该是一样的.个人之见.仅供参考!
lovingprince
2008-05-07
打赏
举报
回复
还补充一点,事务只是保证你的操作的原子性。即要成功都成功,要么都失败,并不关心你什么时候完成几步操作。
lovingprince
2008-05-07
打赏
举报
回复
1.我觉得手动commit的程序比用autocommit的要快些,是我的错觉还是有什么原因?
答:如果是批量执行的时候,肯定要快些。因为开启一个事务需要耗费很多资源,分批次就好得多。不过也要注意要适量,不要几万条一起commit,那也不行。
2.我一次更新n条记录,放在一个transaction里,记录里有一个最后更新时间的字段.那是不是这n条记录就都是一个最后更新时间?
答:不是,即使是一次commit,因为你更新始终是有先后顺序的,所以时间肯定不一样,但是可能会在毫秒级以内
3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢?
答:你的记录不多吧?执行速度非常快的情况下,时间相差都在毫秒以内,一般的秒或毫秒都可能看不出来
anqini
2008-05-07
打赏
举报
回复
3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢?
这是因为你把2批的数据一次提交的吧,是2次提交的话不可能这样啊!
jdbc
mysql
commit
_
jdbc
的
commit
和rollback
commit
和rollback是数据库事务的两个概念。一个数据库事务有开始和结束边界(boundary), 位于boundary的对数据库的各种操作认为是对该事务的操作。一个事务的要占用数据库的一些资源,比如可能获得数据库的某个表的某条记录的lock,如果一个事务长期占用资源而不去释放,那么对其他的事务是不利的,可能会使得速度很慢。所以对数据库操作的正确做法是让事务短小,只做一些应该在事务里边做的...
JDBC
的
commit
和rollback
commit
和rollback是数据库事务的两个概念。一个数据库事务有开始和结束边界(boundary), 位于boundary的对数据库的各种操作认为是对该事务的操作。一个事务的要占用数据库的一些资源,比如可能获得数据库的某个表的某条记录的lock,如果一个事务长期占用资源而不去释放,那么对其他的事务是不利的,可能会使得速度很慢。所以对数据库操作的正确做法是让事务短小,只做一些应该在事务里边做的
jdbc
的
commit
和rollback
commit
和rollback是数据库事务的两个概念。 一个数据库事务有开始和结束边界(boundary), 位于boundary的对数据库的各种操作认为是对该事务的操作。 一个事务的要占用数据库的一些资源,比如可能获得数据库的某个表的某条记录的lock,如果一个事务长期占用资源而不去释放,那么对其他的事务是不利的,可能会使得速度很慢。 所以对数据库操作的正确做法是让事务短小,只做一些应该在事务里...
JDBC
Connection.
commit
()的bug
逻辑:MQ发送->更新Process_code->更新process_code正常->MQ.
commit
() |->更新Process_code异常->MQ.rollback()程序大概:MQ.Send();Connection conn=ConnectionPool.open();if(conn!
全球各国汇率、短长期、政策利率数据(1914-2024.3)
根据国际货币基金组织(IMF)等平台的数据,整理了全球各国的兑美元汇率,短期利率、长期利率、政策利率数据,时间范围最新至2024年3月,希望对大家有所帮助 一、数据介绍 数据名称:全球各国汇率、短长期、政策利率数据 数据范围:全球国家 样本数量:76403条 数据年份:1914-2024.3 数据说明:包含兑美元汇率、短期利率、长期利率、政策利率 更新时间:2024年3月 二、指标范围 单位 国家 年份 兑美元汇率-月度均值 兑美元汇率-年度均值 短期利率 长期利率 政策利率
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章