MySQL(一):MySQL中的事务
【目录】
- 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中的事务相关推荐
- mysql sql 事务写作_mysql中的事务
MySQL事务相关 一. 什么是事务 事务(Transaction)是一个逻辑序列,该序列要么执行,要么不执行. 例如:转换业务 A 给 B 转账 1000 元,设计两个操作: A减少1000元 B增 ...
- MySQL数据库中默认事务隔离级别是?
MySQL数据库中默认事务隔离级别是? 事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到 ...
- mysql中不同事务隔离级别下数据的显示效果--转载
事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都 ...
- mysql 中的事务
最近频繁的用到数据库的事务操作,虽然一直都知道事务是干嘛的,但总觉得了解的不是很清楚,所以在此做个记录. 1.事务的概念:简单来说,事务是一组sql语句,可以使一个sql,也可以是单个sql,当开启事 ...
- 第一百三十七期:一个简单的小案例带你理解MySQL中的事务
事务又叫做TCL,全称是transaction control language,意思是事务控制语言. 作者:Java的架构师技术栈 事务又叫做TCL,全称是transaction control l ...
- shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?
要说清楚Mysql中的事务隔离级别,我们先从事务的定义说起.事务,是一个或一组sql语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行.整个单独单元作为一个不可分割的整体,如果单元中某条 ...
- mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...
网上有人说开启事务后 sql语句执行错误或程序出错 没有执行rollback的情况下,下一次运行就会自动commit 程序出错不会回滚rollback 但是也有人说抛出异常等 程序如果MySQL存在没 ...
- mysql中的事务_mysql中的事务,你理解嘛?
事务又叫做TCL,全称是transaction control language,意思是事务控制语言.这篇文章还是属于我的mysql基础文章,在前面我们介绍了下面这些基础知识: 1.数据库的增查改删操 ...
- MySQL中的事务及读写锁实现并发访问控制
一.并发控制中锁的概念 锁是并发控制中最核心的概念之一,在MySQL中的锁分两大类,一种是读锁,一种是写锁,读锁也可以称为共享锁(shared lock),写锁也通常称为排它锁(exclusive l ...
最新文章
- 千万用户同时在线,优酷智能档在双11“猫晚”直播如何防卡顿?
- net::ERR_INCOMPLETE_CHUNKED_ENCODING
- Android AppCompatCheckBox在低版本上不显示问题
- ansible 介绍
- jrebel热部署不起作用_5种SpringBoot热部署方式,你用哪种?
- 那些年,我们追过的java8
- @ExceptionHandler
- JAR——pinyin4j-2.5.0
- 明细表如何添加重量_关于Revit中明细表标准的导出及导入
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- ansible-handlers
- IOS学习之UITableView滚动到指定位置
- iic总线的仲裁机制_iic总线
- 二进制堆的C++实现及其在机器调度(LPT)上的简单应用
- html+css的音乐网站
- safari浏览器找不到服务器怎么办,safari打不开网页因为服务器已停止响应解决方法...
- 【技术邻】CAE工程师崩溃的10个瞬间
- 基于STM32的贪吃蛇小游戏
- 认证资料大全(八)------ SUN认证列表
- 数据分析案例-旅游景点票价预测
热门文章
- Windows 7,难说再见
- 程序员总被坑?这是GitHub上的一篇防骗指南
- Google大牛涉嫌性骚扰被停职,NIPS官方致歉,传闻多时的AI圈黑幕终于被撕开
- 计算机网络系统组播功能_全国计算机等级考试四级计算机网络考试大纲(最新版2018年版)...
- Java面试官最爱问的垃圾回收机制,Java编程配置思路详解
- mysql集群负载均衡,这些知识你必须拿下
- Java开发入门教程!java垃圾回收机制描述正确
- 二叉树中是否存在节点和为指定值的路径
- java中element转换_java中实体类与xml的element相互转换
- android系统打印功能实现,Android实现系统打印功能