mysql数据库事务隔离级别分析
来源:互联网 发布:龙江网络投诉电话 编辑:程序博客网 时间:2024/05/16 06:51
mysql的事务隔离共分为四个级别:分别为read uncommitted(读未提交), read committed(读提交),repeatable read (重复读,同时需要声明重复读是mysql默认的事务隔离级别),最后一个为serializable(序列化)。
这四种级别在读取数据是会遇到不同的问题。
read uncommitted 会出现脏读,不可重读,幻读的现象。
read committed 会出现不可重读,幻读的现象。
repeatable read 会出现幻读的现象。
serializable 最为安全。
脏读:假设有 a b 两位,a给b转了100块钱,b发现自己账户多了100块,但是此时a发现转的钱不对,撤销了事务(rollback),这样就出现了a没有转钱,而b发现自己多了100,当然当b再次查询时,账目又恢复正常。说白了就是b读取了a未提交的数据。
不可重读:你拿钱去买东西,在买之前查看银行卡有1000元,结果在你买的过程中你的女朋友转走了500元,当你付款时发现少了500元,不可重读就会产生这样的问题。注意:是一条数据发生了改变。
幻读:你去公司面试,要打领带,在你衣橱的时候有一条领带,这时候你的女朋友又放了一条,当你再次打开衣橱的时候发现两条领带,这就是幻读。
不了重读和幻读的区别是前者是一条数据发生了改变,后者是对其他数据进行了改变。
那么问题来了,serializable最安全,为什么不用他呢,任何事物不是十全十美的,它的运行速度相对慢。
read uncommitted运行的快,但是并没有快多少,所以大多数数据库的事务隔离级别是read committed,但是mysql 是repeatable read。
当然有兴趣的可以自己做实验。
但是一定要先开始事务,start transaction,因此在编写语句后,需要自己手动提交,只有这样才可以手动提交。
- mysql数据库事务隔离级别分析
- MySQL数据库事务隔离级别
- MySQL数据库事务隔离级别
- Mysql数据库事务隔离级别
- MySql数据库 事务隔离级别
- mysql数据库事务隔离级别
- MySQL数据库事务隔离级别
- MySQL数据库事务隔离级别
- MYSQL 数据库 事务 隔离级别
- MySQL数据库事务隔离级别
- MYSQL数据库隔离级别分析
- 数据库的事务隔离级别分析
- 【数据库】深入分析事务的隔离级别
- 深入分析MySQL事务隔离级别
- MySQL数据库事务的隔离级别介绍
- mysql数据库事务隔离级别详解
- MySQL数据库的事务隔离级别
- mysql基础(七) 数据库事务隔离级别
- 深度学习OverFeat
- linux下的一些工具功能总结
- onsubmit阻止表单提交的一种方式
- Mybatis批量插入
- IntelliJ IDEA 2016.2.4
- mysql数据库事务隔离级别分析
- 在Ubuntu 14.04上安装搭建FTP服务器详解
- ZZULLI OJ Contest - 东北省赛训练赛 Problem E: 蛤玮准备礼物【区间求和(打表思想),闰年,容斥】
- 自定义一个动态饼状图
- spring boot初识
- CSS:CSS选择器之【伪类/元素选择器】
- 那些年踩过的坑之UINavigationController
- 华为oj 名字的漂亮度
- UnCodebase