MySQL(十六)TCL(事务控制语言)

一、含义

事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行

二、特点(ACID)

A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行

C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态

I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的

D 持久性:一个事务一旦提交了,则永久的持久化到本地

三、事务的使用步骤 ★

了解:

隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、update、delete

显式事务:具有明显的开启和结束

使用显式事务:

①开启事务

set autocommit=0;

start transaction;#可以省略

②编写一组逻辑sql语句

注意:sql语句支持的是insert、update、delete

设置回滚点:

savepoint 回滚点名;

③结束事务

提交:commit;

回滚:rollback;

回滚到指定的地方:rollback to 回滚点名;

四、并发事务

1、事务的并发问题是如何发生的?

多个事务同时操作同一个数据库的相同数据时

2、并发问题都有哪些?

脏读:一个事务读取了其他事务还没有提交的数据,读到的是其他事务“更新”的数据

不可重复读:一个事务多次读取,结果不一样

幻读:一个事务读取了其他事务还没有提交的数据,只是读到的是 其他事务“插入”的数据

3、如何解决并发问题

通过设置隔离级别来解决并发问题

4、隔离级别

mysql中默认第三个隔离级别repeatable read

oracle中默认第二个隔离级别read committed

六、实践

(1)查看隔离级别

select @@tx_isolation;

(2)设置隔离级别

set session|global transaction isolation level 隔离级别;

(3)事务的使用步骤

(4)演示savepoint 的使用

(5)

原文发布于微信公众号 - Java后端生活(javaNotebook)

原文发表时间:2018-05-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

高性能网站架构方案

主从复制功能通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间SELECT查询可以发送到从服务器,以降低主服务器的查询处理负荷。修改...

2098
来自专栏CSDN技术头条

ASM翻译系列第三弹:ASM disk的基础知识

ASM翻译系列导读: ASM翻译系列第三弹:ASM disk的基础知识:http://geek.csdn.net/news/detail/80926 ASM 翻...

1979
来自专栏腾讯云Elasticsearch Service

使用Curator在腾讯云Elasticsearch中自动删除过期数据

本文将向您介绍,如何在腾讯云的无服务器函数(scf)中,使用curator工具,创建ES过期索引的自动删除定时任务。

8.3K5
来自专栏Java开发

Linux开启MySQL日志

854
来自专栏电光石火

在IntelliJ IDEA中配置maven

在IntelliJ IDEA中配置maven 打开-File-Settings  ? 5.新建maven WEB项目 打开-File-New-P...

2125
来自专栏码农阿宇

asp.net mvc razor布局页中a标签的href的跳转问题

笔者做了一个文件上传系统,文件上传后,保存在wwwroot目录的file文件夹中,并把该文件的路径保存到数据库中, 如这样的一个路径保存在数据库: file/b...

2915
来自专栏北京马哥教育

zabbix部署(Linux上部署/监控端/被监控端)

一、监控系统的简单介绍 (1)cacti:存储数据能力强,报警性能差 (2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度...

3494
来自专栏鬼谷君

开启mysql慢查询

1072
来自专栏有困难要上,没有困难创造困难也要上!

HBase入门-安装

40310
来自专栏Python、Flask、Django

PHP开启临时WEB服务器

1483

扫码关注云+社区