MySQL基础篇(一)

打印 上一主题 下一主题

主题 1740|帖子 1740|积分 5230

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 事物的四大特性

事务是逻辑上的一组操纵,要么都执行,要么都不执行

  • 原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;
  • 同等性(Consistency):执行事务前后,数据保持同等,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;
  • 隔离性(Isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;
  • 持久性(Durability):一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
2. MySQL事物的四个隔离级别

2.1 隔离级别


  • 读取未提交 :最低的隔离级别,允许读取尚未提交的数据变更,大概会导致脏读、幻读或不可重复读。
  • 读取已提交 :允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有大概发生。
  • 可重复读 :对同一字段的多次读取结果都是同等的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有大概发生。
  • 可串行化 :最高的隔离级别,完全服从 ACID 的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不大概产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。
2.2 各隔离级别大概会导致的问题

隔离级别脏读不可重复读幻读读取未提交大概出现大概出现大概出现读取已提交解决大概出现大概出现可重复读 解决解决大概出现可串行化 解决解决解决
3. 事物的脏读、幻读、不可重复读

3.1 脏读

A事物读取表中数据为500
B事物将表中数据修改为350,未提交
A事物再次读取数据为350
B事物回滚
此时数据库中数据仍为500,认为A事物第二次读到的数据为脏数据
3.2 幻读

幻读是指一个事务在多次查询中返回了差别等的结果。例如,假设有两个事务C和D,C首先按照某个范围条件(如id>10 and id目录

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表