mysql 事务机制

如果数据的写入直接操作数据文件是非常危险的事情,所以利用日志来实现间接写入。
mysqlz总共有5中日志,其中只有redo日志和undo日志与事务有关。
在这里插入图片描述

事务机制

RDBMS=SQL语句+事务(ACID)

  • 事务是一个或者多个SQL语句组成的整体,要么全部执行成功,要么全部执行失败。
  • 事务
    (1)开启事务
    (2)update语句
    (3)delete语句
    (4)提交事务
    在这里插入图片描述
管理事务
  • 默认情况下,mysql执行每条sql语句都会自动开启和提交事务
  • 为了让多条sql语句纳入到一个事务之下,可以手动管理事务。
START TRANSACTION
SQL 语句
[COMMIT|ROLLBACK]

执行

start transaction;
delete from t_emp

后,select * from t_emp 表中无数据
但查看表时,表中仍有数据
在这里插入图片描述说明还未同步到数据文件中;
此时执行commit;再查看表,表中已无数据。说明已经提交同步到数据文件。

执行

start transaction;
delete from t_emp;
rollback;

表中仍有数据。select * from t_emp;也有数据。

事务的ACID属性
1.事务的原子性

一个事务中的所有操作要么全部完成,要么全部失败。事务执行后,不允许停留在中间某个状态。

2.事务的一致性

不管在任何给定的时间、并发事务有多少,事务必须保证运行结果的一致性。

3.隔离性
  • 隔离性要求事务不受其他并发事务的影响,如同在给定的时间内,该事务是数据库唯一运行的事务。
  • 默认情况下,A事务只能看到日志中该事务的相关数据。
    在这里插入图片描述
4.持久性

事务一旦提交,结果便是永久性的。即便发生宕机,仍然可以依靠事务日志完成数据的持久化。

事务的4个隔离级别
序号隔离级别功能
1read uncommitted读取未提交数据
2read committed读取已提交数据
3repeatable read重复读取
4serialiazble序列化
修改事务的隔离级别
  • read uncommitted 代表可以读取其他事务未提交的数据
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

在这里插入图片描述
在这里插入图片描述

  • read committed 代表只能读取其他事务提交的数据
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

在这里插入图片描述- repeatable read 代表事务在执行中反复读取数据,得到的结果是一致的,不会受其他事务影响。

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;

设置 repeatable read 后,开启事务后,要先执行相应select查询,别的事务的操作才不会对其造成影响。如下图。
在这里插入图片描述如先执行在这里插入图片描述再select sal 则读取的数据就为1了。

事务的序列化
  • 由于事务并发执行所带来的各种问题,前三种隔离级别只使用于在某些场景中,但序列化的隔离性,让事务逐一执行,就不会产生上述问题。
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
数据导出与备份的区别
  • 数据导出,导出的纯粹是业务数据
  • 数据备份,备份的事数据文件,日志文件,索引文件等等。
  • 全量备份->增量备份1->增量备份2
    在这里插入图片描述##### 导出sql文件
  • mysqldump 用来吧业务数据导出成sql文件,其中也包括了表结构。
mysqldump -uroot -p [no-data] 逻辑库 > 路径

复制mysqldump的路径到高级系统设置->环境变量->系统变量->path中

在这里插入图片描述在这里插入图片描述

导入sql文件
  • source 命令用于导入sql文件,包括创建数据库,写入记录等。
mysqld -uroot -p;#登录;
use school;
source teacher.sql;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值