MySQL之MVVC

1、什么是锁?

一种保护机制,在多线程的情况下,保证操作数据的正确性与一致性

2、锁有哪些分类?

悲观锁、乐观锁、独占锁、共享锁、公平锁、非公平锁、分布式锁、自旋锁

3、谈谈悲观锁乐观锁:
指的是看待并发同步的角度,一般结合数据库将,以MySQL为例,悲观锁主要是表锁,行锁和间隙锁,叶锁,读锁,因为这些锁在被触发时会引起线程阻塞,所以叫悲观锁;而乐观锁其实在MySQL中本身不存在,但是MySQL提供了MVCC的机制,支持乐观锁机制

4、什么是MVCC?

只有在InnoDB引擎下存在,MVCC是为了实现事务的隔离性,通过版本号,避免同一数据在不同事务间的竞争,所说的乐观锁只在事务级别未提交锁和已提交锁时才会生效

5、具体MVCC机制有什么?

多版本并发控制,保证数据操作在多线程过程中,保证事务隔离的机制,可以降低锁竞争的压力,保证较高的并发量。在每开启一个事务时,会生成一个事务的版本号,被操作的数据会生成一条新的数据行(临时),但是在提交前对其他事务是不可见的,对于数据的更新操作成功,会将这个版本号更新到数据的行中,事务提交成功,将新的版本号更新到此数据行中,这样保证了每个事务操作的数据,都是互不影响的,也不存在锁的问题

6、在多个事务操作同一条数据的并发过程中,谁先成功?

mysql判断,先提交的先成功

7、谈谈事务。

事务常说一系列操作作为一个整体要么都成功要么都失败,主要特性acidÿ

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页