一、事务的读/写权限
不理解。
1.指定一个事务为只读,语句
SET TRANSACTION READ ONLY;
2.还要设置该事务的隔离级别,语句
SET TRANSACTION ISOLATION LEVEL READ COMMITTED,
READ ONLY;
二、事务终止
结束事务的两种方式:
1.提交。若事务被提交,那么该事务对数据库所做的任何修改都将变为永久性质的更新。
2.回滚。若事务被回滚,那么该事务对数据库所做的任何修改都将被撤销,并将该数据库恢复为该事务开始之前的状态。
3.一个已提交的事务无法回滚。
为了实现回滚,数据库管理系统需要为该事务所引起的每个操作行为记录日志,该日志文件通常被称为“Before-Image"。
我不理解数据库管理系统是如何实现回滚功能的。
三、开始事务
1.开始事务的语句:
START TRANSACTION mode;
事务的模式中可以包含该事务的隔离级别以及对它的读写权限的设置。
2.不支持START TRANSACTION的数据库管理系统,会自动开始新事务。
四、结束事务
多种方式
1.GUI,点击”保存修改“或”执行命令“。
2.命令行处理器,在命令结束时添加冒号,并按Enter。
3.应用程序,用COMMIT或COMMIT WORK命令提交,用ROLLBACK或ROLLBACK WORK命令回滚。
五、事务长度
事务应该尽可能短地被执行。原因如下:
1.一个事务就是一个单元。若事务长度很长,一旦回滚,很多处理都会丢失。
2.事务会持有所有锁定信息,长事务会占据整个数据库的一大部分,这将减少数据库能够提供的并发使用的数量。短事务会使能够共享使用同一个数据库元素的用户数量最大化。