MySQL基本知识

本文介绍了MySQL中的事务特性,包括原子性、持久性、隔离性和一致性,并详细讲解了如何实现这些特性。内容涵盖事务的开始、结束、并发问题以及四种隔离级别。此外,还讨论了InnoDB的行锁、表锁、MVCC原理以及不同锁类型如记录锁、间隙锁和临键锁的应用。事务隔离级别的实现方案,如LBCC和MVCC,也在文中有所阐述。
摘要由CSDN通过智能技术生成

什么是事务?

事务是一个独立的工作单元,里面的操作要不全部成功,要不全部失败。:

事务有什么特性?

  • 原子性:操作要不全部成功,要不全部失败。
  • 隔离性:多个并发事务之间相互隔离,互不干扰。或者说一个事务的操作对于另外一个事务是不可见的。
  • 持久性:事务一旦完成,对数据的变更是永久的,不能回滚。
  • 一致性:数据的状态必须从一个正确的状态变到另外一个正确的状态,必须符合数据库定义的规则。

MySQL中事务的特性分别是怎么实现的?

  • 原子性:通过undo log实现的。
  • 持久性:通过redo log和double write buffer(双写缓冲)实现的。
  • 隔离性:通过锁或者MVCC实现的。
  • 一致性:由原子性、持久性、隔离性共同实现的。

数据库什么时候会出现事务?

  • 增删改会自动开启事务
  • 手动开启事务:begin和start transaction

事务怎么结束?

roll back和commit

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

  • 脏读:一个事务读到了另外一个事务未提交的数据。
  • 不可重复读:一个事务读取到了其他事务已提交的数据导致前后两次读取的数据不一致。
  • 幻读:一个数据读取到了其他事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值