mysql 教学方法总结_MySql 数据库知识点小结

1.事务Transaction

事务是一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务。在SQL层面可以理解为一个事务,是由多条SQL组成用以完成一个业务功能的共同体。

事务主要用于处理操作量大,复杂度高的数据

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。其中可重复读是默认的隔离级别。

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

事务用来管理 insert,update,delete 语句

事务的特性 ACID

原子性(Atomicity): 事务被视为不可分割的最小工作单元,整个事务中的所有操作,要么全部执行,要么全部不执行。

一致性(Consistency):执行事务的前后,数据库总是从一个一致性状态换到另一个一致性状态。事务在执行过程中,如果中途出现了错误,因为事务还没有被提交,事务中间做的修改不会被保存,数据库的一致性状态没有被改变。当事务提交成功后,一致性状态换到另一个一致性状态。

隔离性(Isolation): 一个事务所做的修改在提交之前,对其他事务是不可见的,各个事务之间的数据是独立的。

持久性(Durability): 一个事务提交后,它对数据库的修改是持久化到磁盘的,即使系统崩溃,修改的数据也不会丢失。

事务的隔离级别

并发事务可能导致的问题

脏读: 一个事务在修改数据后还没有提交,此时另一个事务访问了这个数据,它读取到了这个修改还未提交的脏数据,称为脏读

(丢失修改): 在一个事务访问一个数据并进行修改后还没有提交,此时另一个事务也修改了这个数据,那么第一个事务内修改的结果就会被丢失。

不可重复读: 指一个事务内多次访问同一数据,在第一次访问后,另一个事务访问了此数据并进行了修改,那么第二次访问时前后的结果不一致,(重点在于修改)称为不可重复读。

幻读: 和不可重复读类似,在事务1第一次访问该范围记录后,另一个事务对此范围内数据进行了修改(增删),第二次访问时发现多了或者少了记录,就像幻觉一样,所以称为幻读。

四个隔离级别

READ_UNCOMMITTED(未提交读): 最低的隔离级别,允许读取尚未提交的数据,可能导致上述的所有问题,基本不用它。

READ_COMMITTED(提交读): 允许读取事务中已提交的事务,可以防止脏读,但是幻读和不可重复读仍然有可能发生。

REPEATABLE_READ(可重复读): 保证了同一个事务中多次读取的结果相同。可以防止脏读和不可重复读,但是幻读仍然有可能发生。

SERIALIZABLE(串行化): 最高的隔离级别,每个事务必须依次执行,可以防止上述的所有问题,但是会严重影响系统的性能,一般也不用。

保留点savepoint :数据库事务处理中实现“子事务”(subtransaction),也称为嵌套事务的方法。事务可以回滚到 savepoint 而不影响 savepoint 创建前的变化, 不需要放弃整个事务。

https://www.runoob.com/mysql/mysql-transaction.html

https://zhuanlan.zhihu.com/p/117476959

https://juejin.cn/book/6844733769996304392/section/6844733770063609869

2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值