文档章节

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

清晨吼于林
 清晨吼于林
发布于 2017/04/07 01:59
字数 548
阅读 28
收藏 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
Mybatis3.3.x技术内幕(三):Mybatis事务管理(将颠覆你心中目前对事务的理解)

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

祖大俊
2016/04/27
3K
4
c++ mysql事务提交及回滚

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

bobwei
2015/10/22
917
0
数据库事务的学习笔记

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

天天顺利
2015/09/18
44
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么你的python版本一团糟?因为少了这个操作

坑人的版本 Python 的版本问题一直是个广被吐槽的黑点。以至于有人调侃说: Python 是世界上最好的两种语言! 在这里我要说明下,对于初学者来说,版本间的语法差异其实并不大。现在刚开始学...

crossin
昨天
2
0
Cannot forward after response has been committed

声名:转载自CSDN 通过toncat启动服务器,可以正常登陆访问,登陆进去选择子系统的时候点击登陆的时候,可是去又回到了登陆界面,如此反复就是不能够进入子系统,查看后台报的错误: java.la...

小橙子的曼曼
昨天
2
0
shell编程(告警系统邮件引擎、运行告警系统)

告警系统邮件引擎 1.如果要使用邮件引擎功能,需要调用mail.py文件,放到/usr/local/sbin/mon/mail/目录下即可,具体内容如下: #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,s...

蛋黄_Yolks
昨天
1
0
Asus RamPage VI Extreme开不了机

Asus RamPage VI Extreme 的机器突然关机,然后就再也开不了机,没有任何反应。有人说是BIOS问题,可是这个连Bios都进不去的,按后面的刷新Bios、清除CMOS等都没有什么效果,没有任何反应。 ...

openthings
昨天
1
0
ubuntu 18.04 desktop 截图快捷键

如图,点击下方的 add shortcut 为这个快捷键命名 输入截图 command gnome-screenshot -a 设置快捷键 常用为 Ctrl - Alt + a 参考 http://os.51cto.com/art/200903/113091_all.htm...

公孙衍
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部