博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql事务隔离级别
阅读量:6078 次
发布时间:2019-06-20

本文共 820 字,大约阅读时间需要 2 分钟。

事务,在计算机术语中是一般指访问并可能更新数据库中各种数据项的一个程序执行单元。特别是在并发系统中,同一事务单元可能同时在执行去操作同一段数据,就好比多个人去洗一批盘子,如果没有很好的隔离,就会造成很多数据问题。那我们看一下都有哪些数据问题呢?

(一) 脏读:A事务对数据进行修改但还没有提交,B事务已经读到了,B事务这种行为就是脏读

(二) 不可重复读:A事务对数据进行修改切已提交,B事务就读到了,B事务这种行为就是不可重复读,就是说在B事务里面第一次读和第二次读数据不相同

(三) 幻读:假如一个数据表有一个字段flag,并且该数据表共有10条数据。A事务将数据表中的flag字段的值全部设置为1后(A事务还没提交),B事务又写入一条数据(flag字段为0)并提交,此时再在A事务中查询修改结果发现仍有一条数据没有修改(B事务写入的),A就觉得很怪异(幻读)。其实幻读与不可重复读很像,只是侧重点不同,不可重复读的重点是修改(同样的条件, 你读取过的数据,再次读取出来发现值不一样了),幻读的重点在于新增或者删除(同样的条件, 第 1 次和第 2 次读出来的记录数不一样)

 

为了解决这些问题,mysql给出了四种隔离级别

1. READ_UNCOMMITTED:最低级别,允许脏读、不可重复读、幻读

2. READ_COMMITTED:允许不可重复读、幻读,不允许脏读

3. REPEATABLE_READ:允许幻读、不允许不可重复读、幻读

4. SERIALIZABLE:最高级别,不允许脏读、不可重复读、幻读

大多数数据库的默认隔离级别为: Read Commited,如Sql Server , Oracle.

少数数据库默认的隔离级别为Repeatable Read, 如MySQL InnoDB存储引擎

 

转载于:https://www.cnblogs.com/it-science/articles/6985485.html

你可能感兴趣的文章
python--IP代理池验证可用性
查看>>
python 获取yahoo股票数据
查看>>
zip文件格式说明
查看>>
java中的抽象类
查看>>
3D 架设场景
查看>>
ssl 协议与CA的创建
查看>>
Linux下终端的快捷键及建立打开终端的快捷键
查看>>
用PHPMailer-master.zip和GMAIL发邮件
查看>>
android之Intent的七大属性
查看>>
iframe自适应高度
查看>>
虚拟机联网问题
查看>>
mysql数据库默认区分大小写
查看>>
知识图谱实战开发案例剖析(16)-第一个智能对话机器人(附完整源码)
查看>>
MYSQL数据库主从复制(一)
查看>>
linux命令总结
查看>>
Ansible 五(inventory文件 主机清单)
查看>>
Zabbix监控Windows进程重启
查看>>
幽灵漏洞的补救措施
查看>>
克隆PDB
查看>>
CSS盒子模型
查看>>