疑问:哪部分花的时间更长。环境 java +mysql (linux)
业务:java代码 SET AUTOCOMMIT=0
connect(..)
try{
preparestatement("update or delete 某个 大sql语句"); ------时间点1commit;----提交 时间点2
}如果异常 回滚这段代码执行有2个时间 ,一个是 在mysql缓存或者jdk缓存里执行的时间.上面的时间点1
另外一个是整个更新从缓存提交到mysql的时间点2.现在不方便调试java,想知道 是 时间点1 还是 时间点2 花的时间更多些?
业务:java代码 SET AUTOCOMMIT=0
connect(..)
try{
preparestatement("update or delete 某个 大sql语句"); ------时间点1commit;----提交 时间点2
}如果异常 回滚这段代码执行有2个时间 ,一个是 在mysql缓存或者jdk缓存里执行的时间.上面的时间点1
另外一个是整个更新从缓存提交到mysql的时间点2.现在不方便调试java,想知道 是 时间点1 还是 时间点2 花的时间更多些?
2.在进行数据库操作时,常要用try..catch.若引入事务,则在catch中,要执行: con.rollback();-->才有实际意义. 推理 :
从 缓存提交到 db 的时候, 需要进行数据完整性的检查 ,比如 索引 外键等的约束。
似乎 时间点2 花的时间要多。
select now();
set @atime=0;
select now();
update `a` set name='1222';
select name from a limit 1;
select now();---------------------这里 时间花的巨大
commit;
select now();---------------------几乎不花时间跟推测相反。 第一个时间点时间是漫长的
| now() |
+---------------------+
| 2010-10-14 07:57:51 |
+---------------------+
1 row in setQuery OK, 277319 rows affected
Rows matched: 277319 Changed: 277319 Warnings: 0+---------------------+
| now() |
+---------------------+
| 2010-10-14 07:58:00 |---------------花1分左右
+---------------------+
1 row in setQuery OK, 0 rows affected+---------------------+
| now() |
+---------------------+
| 2010-10-14 07:58:00 |------------几乎没哟花时间
+---------------------+
1 row in set看来还是根据实际情况来分析 才是