【目录】

  • MySQL(一):MySQL中的事务
  • MySQL(二):MySQL性能优化

【前言】

MySQL中的事务是MySQL中重要的一部分内容;虽然之前用了很久不过这次再用的时候仍然发现自己存在一些盲点;于是乎针对事务进行了学习并总结;在此记录一下与大家共享。

【不得不知事务四大特性】

一、事物的四大特性

1、原子性(Atomicity)

事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

2、一致性(Consistency)

事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

3、隔离性(Isolation)

当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

4、持久性(Durability)

一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

二、深入Isolation

针对ACID中的I提到的四个隔离级别也是十分有趣的一部分内容:

1、分类

(1)未提交读---READ UNCOMMITTED

(2)提交读---READ COMMITTED

(3)可重复读---REPEATABLE READ---MySQL默认的隔离级别

(4)序列化---SERIALIZABLE

2、多个事务遇到问题

(1)脏读

(2)不可重复读

(3)幻读

3、实验:

(1)设置MySQL的隔离级别的方法:

①查看当前会话隔离级别

select @@tx_isolation;

②查看系统当前隔离级别

select @@global.tx_isolation;

③设置当前会话隔离级别

set session transaction isolatin level repeatable read;

④设置系统当前隔离级别

set global transaction isolation level repeatable read;

⑤开始事务

set autocommit=off 或者 start transaction

(2)步骤:

①在不同的事务隔离级别中查值

②一个会话A开启事务

③另一个会话B也开启事务

④在会话B中查值

⑤在会话A中查值

⑥在会话B中查值

⑦会话A提交

⑧会话B中再查值

4.小结:

(1)事务隔离级别越高性能越差

(2)建议是可重复读

【总结】

1、多思考---多问自己为什么这么做,如果不这么做会有什么弊端,这么做又有什么好处,然后权衡利弊;

2、从原理着手,用实验去验证。

MySQL(一):MySQL中的事务相关推荐

  1. mysql sql 事务写作_mysql中的事务

    MySQL事务相关 一. 什么是事务 事务(Transaction)是一个逻辑序列,该序列要么执行,要么不执行. 例如:转换业务 A 给 B 转账 1000 元,设计两个操作: A减少1000元 B增 ...

  2. MySQL数据库中默认事务隔离级别是?

    MySQL数据库中默认事务隔离级别是? 事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到 ...

  3. mysql中不同事务隔离级别下数据的显示效果--转载

    事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都 ...

  4. mysql 中的事务

    最近频繁的用到数据库的事务操作,虽然一直都知道事务是干嘛的,但总觉得了解的不是很清楚,所以在此做个记录. 1.事务的概念:简单来说,事务是一组sql语句,可以使一个sql,也可以是单个sql,当开启事 ...

  5. 第一百三十七期:一个简单的小案例带你理解MySQL中的事务

    事务又叫做TCL,全称是transaction control language,意思是事务控制语言. 作者:Java的架构师技术栈 事务又叫做TCL,全称是transaction control l ...

  6. shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?

    要说清楚Mysql中的事务隔离级别,我们先从事务的定义说起.事务,是一个或一组sql语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行.整个单独单元作为一个不可分割的整体,如果单元中某条 ...

  7. mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...

    网上有人说开启事务后 sql语句执行错误或程序出错 没有执行rollback的情况下,下一次运行就会自动commit 程序出错不会回滚rollback 但是也有人说抛出异常等 程序如果MySQL存在没 ...

  8. mysql中的事务_mysql中的事务,你理解嘛?

    事务又叫做TCL,全称是transaction control language,意思是事务控制语言.这篇文章还是属于我的mysql基础文章,在前面我们介绍了下面这些基础知识: 1.数据库的增查改删操 ...

  9. MySQL中的事务及读写锁实现并发访问控制

    一.并发控制中锁的概念 锁是并发控制中最核心的概念之一,在MySQL中的锁分两大类,一种是读锁,一种是写锁,读锁也可以称为共享锁(shared lock),写锁也通常称为排它锁(exclusive l ...

最新文章

  1. 千万用户同时在线,优酷智能档在双11“猫晚”直播如何防卡顿?
  2. net::ERR_INCOMPLETE_CHUNKED_ENCODING
  3. Android AppCompatCheckBox在低版本上不显示问题
  4. ansible 介绍
  5. jrebel热部署不起作用_5种SpringBoot热部署方式,你用哪种?
  6. 那些年,我们追过的java8
  7. @ExceptionHandler
  8. JAR——pinyin4j-2.5.0
  9. 明细表如何添加重量_关于Revit中明细表标准的导出及导入
  10. Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
  11. ansible-handlers
  12. IOS学习之UITableView滚动到指定位置
  13. iic总线的仲裁机制_iic总线
  14. 二进制堆的C++实现及其在机器调度(LPT)上的简单应用
  15. html+css的音乐网站
  16. safari浏览器找不到服务器怎么办,safari打不开网页因为服务器已停止响应解决方法...
  17. 【技术邻】CAE工程师崩溃的10个瞬间
  18. 基于STM32的贪吃蛇小游戏
  19. 认证资料大全(八)------ SUN认证列表
  20. 数据分析案例-旅游景点票价预测

热门文章

  1. Windows 7,难说再见
  2. 程序员总被坑?这是GitHub上的一篇防骗指南
  3. Google大牛涉嫌性骚扰被停职,NIPS官方致歉,传闻多时的AI圈黑幕终于被撕开
  4. 计算机网络系统组播功能_全国计算机等级考试四级计算机网络考试大纲(最新版2018年版)...
  5. Java面试官最爱问的垃圾回收机制,Java编程配置思路详解
  6. mysql集群负载均衡,这些知识你必须拿下
  7. Java开发入门教程!java垃圾回收机制描述正确
  8. 二叉树中是否存在节点和为指定值的路径
  9. java中element转换_java中实体类与xml的element相互转换
  10. android系统打印功能实现,Android实现系统打印功能