首页 > 数据库技术 > 详细

2020PHP面试-SQL篇

时间:2020-02-17 22:53:13      阅读:77      评论:0      收藏:0      [点我收藏+]

一、乐观锁和悲观锁

1.悲观锁是指假设并发更新会发生冲突,不管冲突是否会发生,都会使用锁机制。

优点: 完全保证数据安全。

缺点:锁机制会有额外开销,并发度降低。 可能会产生死锁。

 

2. 乐观锁是指假设数据不会发生冲突,只在数据提交更新的时候,才会对数据是否冲突进行检测(通过版本号),如果发现冲突,则认为是过期数据。

优点: 没有锁机制的额外开销,并发高,不会出现死锁。

缺点:回滚重试性能孙损耗明显。

 

 

二、Innodb的四种隔离级别,mysql的默认隔离级别是

首先要知道脏读、不可重复读、幻读的概念。

脏读:一个事务读取到另一个事务未提交的数据。

不可重复读:同一事务,多次读取同一数据,结果返回不同。也就是读取到了其他事务已提交的数据。 相反,可重复读也就是同一事物多次读取同一数据,结果返回都是一样的。

幻读:主要指的是,一个事务读取到了另一个事务新insert的数据。

四种隔离级别如下:

未提交读(Read uncommitted)   脏读、不可重复读、幻读。

已提交读(Read committed)  不可重复读、幻读。

可重复读(Repeatable read) 幻读。  --- mysql 默认的隔离级别。  但是mysql在此基础上,通过事务版本号的形式解决了可能会出现幻读的问题。mvcc 多版本并发控制

可串行化(SERIALIZABLE) 三种问题都不存在。

 

三、事务的四种特性

事务是并发控制的基本单位,要么全执行,要么全不执行。

原子性、一致性、隔离性、持久性。

 

2020PHP面试-SQL篇

原文:https://www.cnblogs.com/camouflage/p/12323762.html

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