文档章节

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

清晨吼于林
 清晨吼于林
发布于 2017/04/07 01:59
字数 548
阅读 24
收藏 0
点赞 0
评论 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
python之MySQLdb的基本操作

什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 如何安装MySQLdb? 为了用DB-API编写MySQL脚本,必须确保已...

LinQiH
2017/10/26
0
0
c++ mysql事务提交及回滚

之前在做有关数据库的操作时发现,有些内容应该作为一个事务一起提交,而不是每个都单独提交,这就需要把这些操作当做一个事务来处理。而我之前写过简单的数据库的操作,因为mysql默认的是自...

bobwei
2015/10/22
917
0
Mybatis3.3.x技术内幕(三):Mybatis事务管理(将颠覆你心中目前对事务的理解)

1.说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性、四大隔离级别、七大传播特性。四大还好说,问题是七大传播特性是哪儿来的?是Spring在当前线程内,处理多个数据库操作方...

祖大俊
2016/04/27
3K
4
数据库事务的学习笔记

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

天天顺利
2015/09/18
44
0
MySQL · 源码分析 · InnoDB Repeatable Read隔离级别之大不同

开始介绍之前,先让我们了解一些基本概念。ANSI SQL STANDARD定义了4类隔离级别(READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE),包括了一些具体规则,用来限定事务内外...

阿里云RDS-数据库内核组
2017/06/08
0
0
Mysql一些重要配置参数的学习与整理(二)

原文地址:Mysql一些重要配置参数的学习与整理(二) 上一篇,Mysql一些重要配置参数的学习与整理(一)中,我们了解和学习了mysql配置中的一些重要参数,今天继续进行学习,mysql的配置参数...

Realfighter
2015/01/07
0
0
高性能MySql学习笔记——锁、事务、隔离级别

为什么需要锁? 因为数据库要解决并发控制问题。在同一时刻,可能会有多个客户端对Table1.rown进行操作,比如有的在读取该行数据,其他的尝试去删除它。为了保证数据的一致性,数据库就要对这...

凯文加内特
2016/01/26
77
0
事务隔离级别的学习

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

天地一MADAO_
2016/09/05
29
0
深入理解乐观锁与悲观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和...

Hosee
2016/06/01
356
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部