文档章节

有关数据库事务的一些理解-MySQL本身的事务

清晨吼于林
 清晨吼于林
发布于 2017/04/07 01:59
字数 548
阅读 29
收藏 0

1. connection、session、transaction

    connection,数据库连接,一种物理概念,客户端通过这个连接与数据库服务端进行通信,基于tcp的socket连接。由于创建与销货连接开销比较大,因此可以通过池化数据库连接来复用连接。

    session,会话,一种抽象概念,这是一个存在于MySQL服务端的概念。

    transaction,事务,一种抽象概念,即一堆操作的集合,这堆操作要么同时成功,要么同时失败。

2.MySQL的自动提交功能

    相信,我们在用客户端操作MySQL数据时,会有这样的一个疑问,事务到底体现在哪了?

    实际上,默认情况下,我们每执行一条语句,MySQL就会帮忙自动提交这个事务,即每条语句都会自动提交,至此一个事务就完成了,在你不知不觉中,就完成了一个事务。那我们如何开启与关闭自动提交功能呢?

    红色与绿色的两个窗口,分别开启了一个事务。在绿色事务没有commit之前,红色事务职能看到原始的数据,如果看到了,则属于 “脏读”(读到别人未提交数据),这就涉及到数据库的事务隔离级别。MySQL的默认事务隔离级别是 可重复读,可以保证不同事务在并发的读取数据时,看到相同的数据,知道其中一个事务提交事务。

上面第5步操作完成之后会话中一个事务结束了,立马在不知不觉中,你又进入了另外一个事务(这个与后面的代码是相通的)。事务实际上无处不在,你不是在这个事务中,就是在下一个事务中。

3.一句话就是,MySQL中事务无处不在。除非该存储引擎完全不存在这种事务的概念。实际上,MyISAM存储引擎,也是存在这样的先后提交的,只是它比不是很好的支持回滚罢了。

© 著作权归作者所有

共有 人打赏支持
清晨吼于林
粉丝 3
博文 16
码字总数 9877
作品 0
南京
私信 提问
MySQL到底有几种日志类型需要我们记住?

MySQL中有七种日志文件,分别是: 重做日志(redo log) 回滚日志(undo log) 二进制日志(binlog) 错误日志(errorlog) 慢查询日志(slow query log) 一般查询日志(general log) 中继...

代码技巧
06/27
0
0
数据库事务的学习笔记

对事务本身的理解 1.事务是一组原子性的SQL查询,对于事务内的查询要么完全成功,要么完全失败。 2.mysql默认的事务是自动提交的,即autocommit=true,也就是说一个SQL查询即是一个事务。 3....

天天顺利
2015/09/18
44
0
关于 MySQL 的知识点与面试常见问题都在这里

为了达到上述事务特性,数据库定义了几种不同的事务隔离级别: 详细内容可以参考: MySQL大表优化方案Java高级架构 ∣干货|学习 长按,识别二维码,加关注 温馨提示 如果你喜欢本文,请分享...

JAVA高级架构v
09/28
0
0
有关事务的冲突类型,建议你看一下

事务 所谓事务是用户定义的一个数据库操作系列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 事务冲突类型 1、有关脏读 脏读是最简单的一种冲突类型。 【定义】A事务...

在北方玩弹子球
10/08
0
0
事务隔离级别的学习

写在前面: 这个博客记录的是自己学习过程和理解,有些细节可能写的不见得准确,想了解概念,谷歌可以搜出很多不错的博文去学习.我把它记下来,则是为了记录学习的过程,因为有些知识是需要自己创造...

天地一MADAO_
2016/09/05
29
0

没有更多内容

加载失败,请刷新页面

加载更多

Dubbo分析之Cluster层

系列文章 Dubbo分析Serialize层 Dubbo分析之Transport层 Dubbo分析之Exchange 层 Dubbo分析之Protocol层 前言 紧接上文Dubbo分析之Protocol层,本文继续分析dubbo的cluster层,此层封装多个提...

ksfzhaohui
16分钟前
0
0
linux Ubuntu 安装 hyperledger fabric

一、apt-get update 二、安装docker sudo apt-get install docker.io 如果安装报错:E: Unable to locate package,请执行第一条。 # docker -v Docker version 1.6.2, build 7c8fca2 # dock......

八戒八戒八戒
19分钟前
1
0
神经网络基础及Keras入门

神经网络定义 人工神经网络,简称神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或...

Python女神
19分钟前
1
0
Pycharm上Django的使用 Day9

编辑条目: 1.创建edit_entry的URL模式 形参entry_id存储在URL中传递的ID,这个URL模式将预期匹配的请求发送给视图函数edit_entry() 2.编写视图函数edit_entry() 1处获取用户要修改的条目对象...

不会TC的猫
20分钟前
1
0
夹点getGripPoints/捕捉点getOsnapPoints

已知圆外一点,以及圆心半径,求圆的切点: 方法1: (b-y/a-x)*(n-y/m-x)=-1(a-x)平方+(b-y)平方=r平方联立方程组求解 方法1: CPoint CalcQieDian(CPoint ptCenter, CPoint ptOutside, do...

一个小妞
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部