首页 > 代码库 > sql锁 事务
sql锁 事务
1.数据库并发产生的问题。(这里所说的事务就是普通意义的流程,跟数据库的事务不要关联起来)
1)脏读。一个事读取了一个仍然在另一个未提交事务的范畴内的数据。read committed级别可以避免。
2)不可重复读。一个事务中两次相同的查询却返回了不同的数据。这是因为一个事务在读,然后另一个事务修改了数据,这个事务再去读,发现两次数据不一致。
3)幻读。没有锁定所有读取的行。
4)丢失更新。
2.各种锁(解决这些问题)。
1)共享锁。用户在读取的时候其他用户可以读取,但是不能修改。select 的时候会加上共享锁。
2) 更新锁。防止死锁而设置。加上更新所的对象不能被修改,但是可以读取,这是更新之前的预备状态。
3)独占锁。
4)意向锁。
3.事务里面隔离级别(各种锁的应用)。
1)read uncommitted。可以读未提交的事务。这会出现脏读。
2)read committed。可以读已经提交的数据。避免了脏读,但是会出现不可重复读。
3)repeatable read。可以重复读。避免了脏读,不可重复读,但是会出现幻读。
4)serializable。序列化,序列化执行。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。