美文网首页
mysql(八)

mysql(八)

作者: Freestyle_0f85 | 来源:发表于2019-12-05 17:36 被阅读0次

MySQL-innodb-事务

事务主要针对DML语句

事务都是伴随着交易出现的

将一个执行的单元,划分为几个步骤

mysql> create table jiaoyi(name varchar(10),money int);

事务中执行的SQL语句,要么全部成功,如果有一条失败,则全部回滚。

事务的特性

A:原子性,将一个事务视为一个单元,要么全部成功(commit),要么全部失败(rollback)

C:一致性,在事务执行前后,数据保持一致

I:隔离性(隔离级别),事务和事务之间没有任何影响,完全隔离

D:持久性,事务执行结束后,commit的那一刻,写入磁盘,永久保存。

事务的生命周期

成功的事务:

begin;

SQL1

SQL2

SQL3

...

commit;

失败的事务:

begin;

SQL1

SQL2

SQL3

...

rollback;

image

事务的控制语句

#START TRANSACTION(或 BEGIN)# 开始一个新事务

mysql> start transaction;
mysql> select * from jiaoyi;

#SAVEPOINT                   #分配事务过程中的一个位置,以供将来引用
mysql> savepoint angzang;

#COMMIT                      #永久记录当前事务所做的更改

#ROLLBACK                    #取消当前事务所做的更改
#ROLLBACK TO SAVEPOINT       #取消在 savepoint 之后执行的更改

mysql> rollback to savepoint angzang;

#RELEASE SAVEPOINT           #删除 savepoint 标识符
#SET AUTOCOMMIT              #为当前连接禁用或启用默认 autocommit 模式

事务的隐式提交

在MySQL5.6,不需要手动执行begin;只要执行DML语句,会自动开启一个事务

update、insert、delete

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+

mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | OFF   |
+---------------+-------+

[root@db01 data]# vim /etc/my.cnf
autocommit=0


[root@db01 data]# /etc/init.d/mysqld restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL.. SUCCESS'

面试题

begin;
update
create database
update
select
insert
begin;
update
commit;

1.在事务执行期间,如果执行begin或者 start transaction会自动提交上一个事务,并且开启新的事务

2.在事务执行期间,如果运行了DDL和DCL都会自动提交事务

3.在事务执行期间,执行lock table 或者 unlock table 也会自动提交事务

4.导出数据 load data infile ,会自动提交事务

5.在事务执行期间,执行select for update,会自动提交事务

6.在autocommit=1的时候,会自动提交事务

事务日志-redo

image

WAL:write ahead log
日志优先写


image.png
image.png

失误日志-undo

image.png
image.png

相关文章

  • mysql(八)

    MySQL-innodb-事务 事务主要针对DML语句 事务都是伴随着交易出现的 将一个执行的单元,划分为几个步骤...

  • 八、MySQL

    写在前面 1. MySQL 的重要性就不用再过多的强调了,相信很多人的开发学习之路都行从:Hello Word -...

  • 面试知识梳理--mysql

    mysql八股文推荐链接:mysql八股文推荐链接[https://mp.weixin.qq.com/s/I0qB...

  • MySQL 入门(八)

    C3P0 下载地址[https://sourceforge.net/projects/c3p0/files/lat...

  • 技术分享 | 巧用 binlog Event 发现问题

    作者:高鹏(八怪)文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,...

  • mysql本身比现实少了八小时

    mysql本身比现实少了八小时 select now();//查询mysql时间 为1:00,但现实中为9:00,...

  • Mysql 账号申请

    最近在分析Mysql驱动的写法,在测试mysql时需要临时账号。可以微信搜索公众号 多巴胺的八杯水,点击GETWA...

  • 八、MySQL存储引擎

    1、概述 MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎 每一种存储引擎使用不同的存...

  • 八、MySQL学习目录

    1、数据库分类:关系型数据库,非关系型数据库关系型数据库:数据分类存放,数据之间可以有联系;DB2、Oracal、...

  • 1.3-3 常规信息系统集成技术

    七、数据库管理系统 Oracle MySQl SQL Server MongoDB 八、数据仓库技术 面向主题的、...

网友评论

      本文标题:mysql(八)

      本文链接:https://www.haomeiwen.com/subject/nlhjgctx.html