首页 > 数据库技术 > 详细

Mysql

时间:2020-10-28 09:14:42      阅读:24      评论:0      收藏:0      [点我收藏+]

一.MyISAM 和 Inoodb的区别

MyISAM Innodb
不支持 支持事务
不支持 支持外键
非聚簇索引 聚簇索引
只有表锁 支持行锁(默认)和表锁

二.B-树和B+树

1.B-树

技术分享图片

 

 2.B+树

技术分享图片

 

 

b+树中间没有卫星数据,所以同样大小的磁盘页可以容纳更多元素

B-树在树里面的查询次数其实跟二叉树的次数是一样的,但是B+树的磁盘IO却减少了。

三.锁的类型

读锁  |  读锁是共享的,这时只能读不能写        |

写锁  |  写锁是排他的,它会阻塞其他的写锁和读锁 |

表锁 行锁
锁定整张表并且阻塞其他用户对该表的所有读写操作

行锁又可以分为乐观锁悲观锁,悲观锁可以通过

for update实现,乐观锁则通过版本号实现。

四.事务基本特性和隔离级别

1.事务基本特性 ACID

原子性 一个事务中的操作要么全部成功,要么全部失败
隔离性 一个事务的修改在最终提交前,对其他事务是不可见的
一致性 数据库总是从一个一致性的状态转换到另外一个一致性的状态
持久性 一旦事务提交,所做的修改就会永久保存到数据库中

 

 

2.事务的并发问题

脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。(一个对数进行修改,但还没提交,此时另一个来读取);

不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。(强调修改);

幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。(在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读。);

更新丢失:两个人一起提交修改,有一个必失败。

五.MVCC

 

Mysql

原文:https://www.cnblogs.com/carryup/p/13888572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!