社区
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的高手解答一下~谢谢
...全文
198
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
事务处理机制探秘
在auto-
commit
模式屏蔽掉之后,如果不调用
commit
()方法,SQL语句不会得到
JDBC
事务处理确认。在最近一次
commit
()方法调用之后的所有SQL会在方法
commit
()调用时得到确认。 1. public int delete(int sID) { 2. dbc =...
用
JDBC
访问ORACLE数据库 关于
commit
增快效率 大数据 等的整理
1、问:用
JDBC
访问ORACLE数据库,做DELETE操作,能用JAVA多线程实现吗? ORACLE服务器要怎么配?(以下答案来自网络,仅供参考) 答: Oracle有自己的锁机制。算你开100条线,它还是一条一条删除。不能同时删除多...
javaee-
jdbc
javaee-
jdbc
jdbc
programing acid
commit
rollback
Oracle
jdbc
for 11g 最新版 驱动 o
jdbc
6.jar
我遇到的,之前使用o
jdbc
14.jar(不记得哪个版本了)批量插入10万条,实际只插入了3万多条,其它的丢失了,换o
jdbc
6.jar后,一次
commit
批量插入100万条也OK了。 尽量使用和数据库版本一致的驱动,有bug时,换高...
jdbc
使用过程
JDBC
简介 (全称)
JDBC
数据库连接方式
JDBC
数据库连接的实现 使用
JDBC
-ODBC实现数据库连接(class,connect..,statement,preparedstatement区别,resultset,元数据...
JDBC
对数据库的事务操作(acid,
commit
,rollback)
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章