码迷,mamicode.com
首页 > 数据库 > 详细

mysql事务

时间:2017-03-19 13:49:41      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:存储结构   可重复   索引   列操作   事务   磁盘   性能   完整性   原子性   

我是老师的好学生,毕业了自然不能带走老师的知识,所以在面试官问到mysql事务的时候,我表现的干净利索,感觉上是知道的,但是想不起来,就是这样一个懵逼的状态。。回来补充一下。

事务是数据库执行的一系列操作。

  • 事务最主要的是ACID四个特性:
  • 原子性-事务要么全部执行,要么全不执行
  • 一致性-一个事务的执行不应该破坏数据库的完整性约束
  • 隔离性-事务之间相互隔离,互不影响,这又涉及到了四个隔离等级
  1. * 未提交读:还没提交你就读,那必然存在脏读 RU
  2. * 提交读:提交之后你再读,乖 RC
  3. * 可重复读:不提交你来读,提交你仍来读,这是个幻读的问题,好在mysql有间隙锁,解决了幻读的问题,但是可能会死锁,RR
  4. * 可串行化:事务串行执行,性能最差 S
  • 持久性:事务提交后需要将提交的事务持久化到磁盘,这样及时系统崩溃,提交的事务也不会丢失

 

再说一个mysql的数据存储结构应该是B+树,B+树的特性就是将所有数据都在叶子节点,其他节点放的都是索引,那么为啥要用B+树呢,这就是因为树的深度比较短,搜索路径短,性能自然就优化了。

mysql事务

标签:存储结构   可重复   索引   列操作   事务   磁盘   性能   完整性   原子性   

原文地址:http://www.cnblogs.com/bierxiaobia/p/6579822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!