事务和并发执行目的:

1、提高吞吐量,资源利用率

2、减少等待时间

连接管理器:接受请求/创建线程/认证用户/建立安全连接

并发控制:任何时候,只要有两个以上的用户试图读写同时一个文件/数据,都会带来并发控制问题,

多版本并发控制(MVCC):每个用户在操作数据的时候操作的都不是源数据,而是操作的是源数据的副本/快照,最后再把操作的快照合并到源数据上去

锁:最简单的并发控制机制就是实施锁|要想实现并发控制一个基础的工具就是"锁"

读锁(read):共享锁,允许其他人同时读,但不允许写!

写锁(write):独占锁,写的时候,既不允许其他人写,也不予许其他人读!

加锁:lock   tables    表名   锁类型{read|write}

解锁:unlock   tables    :表示解除所有表的锁

锁粒度:从大到小(mysql服务器仅支持表锁,行锁需要有存储引擎的支持)

表锁:一下子锁定一张表

页锁:锁定一个数据块,页面。

行锁:

注意!:平常不需要给表手动添加锁,大多数情况下mysql内部就维持锁。

事务

存储引擎或服务器要支持事务必须满足4种测试,叫ACID测试

ACID

原子性:事务所引起的数据库操作,要么完全的反应出来,要么完全的都不反应!

一致性:事务在完成之前或之后结果是一致的,当事务结束之后,整个数据库服务器的状态是没有改变的

隔离性:事物之间影响最小,一个事务的中间过程,不能影响到另一个事务的正常执行过程

持久性:服务器出现崩溃了,仍然要保证数据在下一次恢复过来之后,仍然是有效的!,那也就意味着在内存运行完的数据要立即同步到存储设备上去!

1、事务提交之前就已经写出数据至持久性存储

2、结合事务日志完成,事务产生的是顺序IO(按次序存储到连续的存储块当中去)。数据文件是随机IO。

3、

事务日志

自我能够完成重做或撤销,在必要的时候进行自我修复

在事务引擎上,为了完成我们mysql事务,他的每一次操作都是首先在日志文件中完成。

也就意味着我们的增、删、查、修改都是在内存中完成,完成之后立即写到事务日志中去。过一段时间才会写到磁盘空间中去!

重做日志(redo  log):我们的每一个操作,在真正写到数据库之前,他先写到日志里面去,下一次我们这个操作就算是崩溃了,他还可以根据我们的操作日志重新走一遍。

我们这一系列操作可以无限次的根据这个日志重复的执行N遍。

撤销日志(undo  log):我们的每一次操作,在操作之前要把它原有的状态给他保留下来,万一将来我们需要还原回原来状态时,可以给他撤销此前所做的任何一个操作,

这些日志最终的目的是:为事务提供ACID兼容性的

事务状态

活动的:active

部分提交

失败的

终止的

提交的

隔离性:

隔离级别(级别从低到高):

READ  UNCOMMITTED读未提交:读取数据不需要加S锁,这样就不会跟被修改的数据上的X锁冲突

READ  COMMITTED 读提交:别人只有提交之后,你才能看到

REPATABLE  READ可重读:不管你提不提交数据,我这里第一次看到是什么样,一直到事务完成之后还是那个样。

SERIALIZABLE  可串行:

mysql默认隔离级别为REPATABLE  READ可重读

查看隔离级别:show global variables like '%iso%';

修改隔离级别:set  {session|global} 变量名='对应值'; |set tx_isolation='read-committed';

并发控制依赖的技术手段:

时间戳

多版本和快照隔离

事务命令

启动事务:start  transaction;

回滚/撤销事务:rollback;

提交事务:commit

查看是否启动自动提交:select @@autocommit;

关闭自动提交:set autocommit=0;

事务支持保存点

转载于:https://www.cnblogs.com/linux-s/p/11290084.html

mysql数据库之事务和隔离级别相关推荐

  1. mysql数据库的事务 acid 隔离级别 脏读 脏写 幻读 不可重复读

    事务的四大特征 原子性(atomicity):要么全部提交(commit),要么全部回滚(rollback) 一致性(consistency):数据从一个合法状态转换成另一种合法状态 隔离性(isol ...

  2. mysql 事务sqlserver_SQLServer数据库:事务与隔离级别实例讲解

    本文主要向大家介绍了SQLServer数据库:事务与隔离级别实例讲解,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 上班途中,你在一处ATM机前停了下来.正当你在敲入密码 ...

  3. mysql重复读导致余额不对_我所理解的MySQL之四:事务、隔离级别及MVCC

    mysql教程栏目介绍MySQL相关的事务.隔离级别及MVCC. MySQL 系列的第四篇,主要内容是事务,包括事务 ACID 特性,隔离级别,脏读.不可重复读.幻读的理解以及多版本并发控制(MVCC ...

  4. MySQL高级篇——事务的隔离级别与简单应用

    文章目录: 1.数据并发所存在的问题 1.1 脏写 1.2 脏读 1.3 不可重复读 1.4 幻读 2.SQL中事务的隔离级别 3.案例实操 3.1 查看与修改MySQL的隔离级别 3.2 读未提交- ...

  5. MySQL - 并发控制与事务的隔离级别【头歌】

    目录 相关知识 并发操作可能产生的数据不一致性 MySQL的事务隔离级别 示例 第一关:并发控制与事务的隔离级别 编程要求 测试说明 代码如下 第二关:读脏 任务描述 相关知识 读脏 读脏产生的原因 ...

  6. 数据库的事务和隔离级别

    事务的基本特性 原子性,都做或者都不做 一致性,从一个状态装换到另一个状态 隔离性,一个事物执行不能被其他事物干扰 持久性,事务提交后不能更改 事务的隔离级别 未提交读:一个事务内部所有的操作过程,对 ...

  7. 【mysql】关于事务的隔离级别

    一.锁的种类 MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等,表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做dd ...

  8. MySQL数据库的四种隔离级别

    一.首先介绍几个概念: 1,脏读: 又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改但是还未提交,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改并提交,这就导致了T2所读取到的 ...

  9. 〖Python 数据库开发实战 - MySQL篇㉜〗- 事务的隔离级别

    万叶集

  10. 数据库事务的四大特性以及事务的隔离级别

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

最新文章

  1. UOJ37. 【清华集训2014】主旋律
  2. shell下function报错
  3. iOS下音视频通信-基于WebRTC
  4. http://blog.sina.com.cn/s/blog_458f3c010100n4st.html
  5. idea中自动deployment的步骤
  6. 参数化查询为什么能够防止SQL注入
  7. web工作流管理系统开发之十六 主子流程参数传递的实现
  8. 列表、超链接、相对路径-HTML
  9. 人口空间化(三)GWR实现人口空间化
  10. nxlog以syslog方式发送日志
  11. 傅里叶变换时域和频域之间的对应关系
  12. Sublime text3 Version 3... 3207 激活码许可证(2019-07-19亲测有效)
  13. IOS微信内置浏览器音频加载问题
  14. 我想谈一谈外包,请不要“妖魔化”它。
  15. 云端守望者(下):十八般武艺
  16. 操作系统之光--鸿蒙
  17. 微信视频号自助下单刷平台
  18. 解决office2003 32位卸载不干净 无法安装office2013 64位在问题
  19. GAN ZOO - 第1节: 分析GAN的缺陷与改进方向,介绍典型的改进模型:CGAN、InfoGAN
  20. 有哪一些测不准原理?

热门文章

  1. mysql查询报错2014_MySQL错误2014的原因其他未缓冲的查询处于活动状态时无法执行查询...
  2. python第七天--文件练
  3. 记飞机大战小游戏1.0
  4. 分布式 id 生成系统 滴滴 Tinyid 快速入门
  5. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_06-新增页面-前端-新增页面...
  6. 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建
  7. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_10_反射_Class对象功能_获取Method成员方法...
  8. element的form表单中如何一行显示多el-form-item标签
  9. SVN实现自动更新(Windows平台)
  10. Android dex分包方案