1.我觉得手动commit的程序比用autocommit的要快些,是我的错觉还是有什么原因?
2.我一次更新n条记录,放在一个transaction里,记录里有一个最后更新时间的字段.那是不是这n条记录就都是一个最后更新时间?
3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢?PS:我用的mysql希望熟悉jdbc的高手解答一下~谢谢
2.我一次更新n条记录,放在一个transaction里,记录里有一个最后更新时间的字段.那是不是这n条记录就都是一个最后更新时间?
3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢?PS:我用的mysql希望熟悉jdbc的高手解答一下~谢谢
答:如果是批量执行的时候,肯定要快些。因为开启一个事务需要耗费很多资源,分批次就好得多。不过也要注意要适量,不要几万条一起commit,那也不行。2.我一次更新n条记录,放在一个transaction里,记录里有一个最后更新时间的字段.那是不是这n条记录就都是一个最后更新时间?
答:不是,即使是一次commit,因为你更新始终是有先后顺序的,所以时间肯定不一样,但是可能会在毫秒级以内3.我把n条记录分m批用来用2里的办法更新,但是得到的最后更新时间还是都一样的,着是为什么呢?
答:你的记录不多吧?执行速度非常快的情况下,时间相差都在毫秒以内,一般的秒或毫秒都可能看不出来
n条记录的更新时间当然是一个一致的时间点.我不太了解数据库底层的原理,但逻辑上来看,应该是以逻辑空间里的最后一个记录的更新时间为准.
呵呵,其实你用2种方法commit一个相同的逻辑空间,2者的速度应该是一样的.个人之见.仅供参考!
2.数据很少时间就是一致的 数据量很大的话 可能会有一点差别 电脑也要一点点执行的吧
3.请问你到底是用几个COMMIT?数据量是否比较少?
但是我每次commit间还要有好多处理,至少需要10s...我生成最后修改时间的程序是写在dao里的.
to javazhuobin :
你说的那种我也是这么想的,但是似乎从结果上来看不象啊.