mysql事务隔离级别
SQL中定义了4中隔离级别,不同的隔离级别对应着事务中做不同的修改,同时在事务内和事务间的可见性也不同。越低的隔离级别越能支持更高的并发,对系统的开销也越低。
四种隔离级别:
1. read uncommitted (未提交读)
在read uncommitted 级别中,在事务中的修改即使事务未提交,其他同时的事务也是可见的,其他事务也可以读取到该修改数据,出现数据“脏读”的情况。因此 read uncommitted 在实际项目中很少使用。
2. read committed (提交读)
在read committed级别中,一个事务从开始直到事务提交之前,其他的事务对该事务的修改都是不可见的。这个级别同时也叫做不可重复读,因为两次执行同样的查询,可能会不同的结果。
其他大多数的数据库默认的隔离级别都是read committed ,但是mysql 默认隔离级别不是。
3. repeatable read (可重复读)
repeatable read级别是mysql 默认的事务隔离级别。该级别确保了在一个事务中多次读取结果是一致的,但同时也出现另一个“幻读”的问题。“幻读”是指当某个事务在读取某个范围内的记录时另一个事务又在该范围内插入了新的数据,那么再次读取该范围的数据时会出现幻行。所以最终MySQL在存储引擎(InnoDB和XtraDB)通过多版本并发控制(MVCC)解决幻读的问题。
因此也是MySQL 中默认使用的事务隔离级别,同时需要使用事务时一般使用InnoDB存储引擎。
4. serializable (可串行化)
serializable通过强制事务串行执行,在事务对读物的每一行数据都加锁。所以显而易见会导致大量的超时和锁争用的问题。在我们的实际项目开发中很少使用这个级别。
四种隔离级别的等级:read uncommitted < read committed < repeatable read < serializable
隔离级别 | 是否出现脏读 | 不可重复读 | 是否出现幻读 | 是否枷锁读 |
---|---|---|---|---|
read uncommitted | 是 | 是 | 是 | 否 |
read committed | 否 | 是 | 是 | 否 |
repeatable read | 否 | 否 | 是 | 否 |
serializable | 否 | 否 | 否 | 是 |
在不同的数据库和不同的存储引擎中其实现的隔离级别不同,大家可以根据不同的存储引擎针对性的查阅。
MySQL中设置隔离级别
set [global/session] transaction_isolation = "隔离级别"
global代表全局设置,使用global设置时当前会话不生效需要重开会话才有效。
session代表只在当前会话中设置。
mysql事务隔离级别相关推荐
- 5、MySQL事务隔离级别详解
事务的隔离性就是指当多个事务同时运行时,各事务之间相互隔离,不可互相干扰.如果事务没有隔离性,就容易出现脏读.不可重复读和幻读等情况. 为了保证并发时操作数据的正确性,数据库都会有事务隔离级别的概念. ...
- Mysql事务隔离级别及MVCC(多版本并发控制)
一.MySQL事务隔离级别 先注明一点:以下讨论都是在多事务并发的情境下讨论的 事务的特性(InnoDB引擎才有事务): ACID 原子性:一个事务不可再分割,要么都执行要么都不执行 一致性:一个事务 ...
- mysql 事务 隔离级别_MySQL的四种事务隔离级别
https://www.cnblogs.com/huanongying/p/7021555.html 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的 ...
- mysql事务隔离级别 花_mysql事务隔离级别
很多PHP开发者在面试的时候遇到这个问题都会卡壳.这是因为理解得不够透彻,今天让我带领大家梳理一下mysql事务隔离级别 数据库有四种隔离级别,分别是Read uncommitted,Read com ...
- mysql事务隔离级别之锁实现原理,脏读、不可重复读、幻读出现原因及解决方案
mysql事务隔离级别原理 观看了很多网上的博客,挺令人伤心,很难找到想要的答案... 一:所需知识 1,mysql中的锁 1.1,读锁(共享锁) 规则:若事务1对数据对象A加上读锁,则事务1只能读A ...
- 揭秘Mysql事务隔离级别之可重复读
揭秘Mysql事务隔离级别之可重复读 1.可重复读的来源 2.何为不可重复读 3.那么可重复读和不可重复读究竟有什么关系呢? 4.模拟不同事务隔离级别对不可重复的处理情况(有线程执行顺序). 4.1. ...
- mysql 事务隔离级别实现原理_MySQL事务隔离级别和实现原理 - 米扑博客
开发中经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗, 事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢? MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引 ...
- MySQL事务隔离级别介绍
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. Read Uncommitted(读 ...
- MYSQL事务隔离级别详解附加实验
参考: https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html http://xm-king.iteye.com/blog/77072 ...
- mysql事务隔离级别与设置
mysql数据库,当且仅当引擎是InnoDB,才支持事务: 1.隔离级别 事务的隔离级别分为:未提交读(read uncommitted).已提交读(read committed).可重复读(repe ...
最新文章
- OneFlow 概念清单
- 软件工程概论冲刺 第6天
- 《计算机科学概论》—第3章3.2节数字数据表示法
- 获取Extjs文本域中的内容
- 【搜索/推荐排序】总结
- 技术小故事-Activity的Launch Mode引起的动画“疑案”
- Newtonsoft.Json介绍
- 谭浩强C语言程序设计第五版第七章例题
- 代码吃鸡:Python-Robocode
- IBM FileNet Content Java API 简介
- 【HAVENT原创】Spring Boot + Spring-Kafka 异步配置
- js根据出生年月获取年龄
- 链路追踪Logback-ERROR日志邮件发送
- mac备份文件到windows
- ROS-moveit!仿真出现问题:Unable to identify any set of controllers that can actuate the specified
- 在Centos7上安装Docker
- ACM Plan UVa - 11902 Dominator(图的遍历,深度优先)
- linux之域名更改
- 游戏王,查卡器,编号,开源,代码,OCG,程序
- mysql输出当前是第几周使用week和weekofyear的区别
热门文章
- 02【存储引擎、索引】
- 计算机视觉顶级会议和期刊(中英文全称)
- modbus协议讲解,上位机与PLC交互
- 阅读笑话及搞笑图片的app
- app python搭建_Django搭建个人博客:创建并配置APP功能模块
- nfl证明_在电脑上观看NFL周日晚上足球
- mfc 对话框透明 控件不透明_液体窗户会在热量中变得不透明并节省能源
- transformjs - 玩转星球
- 情感分析(Sentiment Analysis)的难题
- Windows CmdPHP窗口消失 但程序依旧执行 查找进程ID(PId)并强制结束进程--wmic process where name--taskkill