Mysql事务与锁深入剖析

1、什么是数据库事务?

事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。
ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。
事务的特性(ACID特性)
A:原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
B:一致性(Consistency)
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
C:隔离性(Isolation)
一个事务的执行不能被其他事务干扰。
D:持续性/永久性(Durability)
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

 

数据库事务分为:自动和手动开启。

 数据库默认开启事务:=ON

 手动开启事务:begin;start transaction;

手动结束事务:commit;rollback;此时锁要释放。

事务并发的三大问题:

(1)不可以重复读(已提交,update、delete):

(2)幻读(已提交,insert):

(3)脏读(未提交,回滚了):

 

丢失更新:

 

数据库默认实现:可重复读。

 

 

意向表锁,就是意向标志。

原因就是大大提升加锁效率。

 

 

 

 

字符可以排序,通过ASCII码。

默认上面这个。

 

 

 

 

 

 

 

 

 

 

 

 

有哪些存储引擎是支持事务的?

InnoDB BDB:支持

MyISAM:不支持

一致性:主要指业务的一致性。

 

2、事务并发会带来什么问题?

3、事务隔离性与锁的关系?

4、行锁的原理和算法详解?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值