本文共 959 字,大约阅读时间需要 3 分钟。
数据库事务就是一系列操作序列的集合,这些集合要么同时成功,要么同时失败
Oracle数据库中,增删改查语句就是事务的开始,没有特有的事务开始指令(mysql中开始事务的指令是begin)
commit指令用来提交 rollback指令用来回滚 以上操作完成就是一次事务的结束.当指定DDL语句时,事务自动提交.
用户关闭一次会话的时候会自动提交 系统崩溃或者断电时,会自动回滚事务.当一个操作序列中有很多条sql语句,但是只想让其中某些部分成功,某部分失败,此时可以使用savepoint.
此时就可以做到四种隔离级别:(严格程度越来越高) 1,读未提交 2,读已提交 3,可重复读 4,序列化 可能导致的问题: 1,脏读 2,不可重复读 3,幻读
查看自动提交属性状态
select @@autocommit为了解决并发访问的时候数据不一致的问题,需要给数据枷锁,加锁的时候就涉及锁的力度问题.
他们之间的效率是不同的,锁力度越小,效率越高,锁粒度越大,效率越低.
1,库锁:并发访问时候,同一时刻只能有一个请求对数据库进行访问,其他请求都要阻塞.2,表锁:锁指定的表,其他请求就不能访问该表,但是还可以访问其他的表和行记录
3,行锁:只有锁住的行不可以被其他请求访问,其他行数据都可以进行访问
转载地址:http://annlf.baihongyu.com/