MySQL的又一神器-锁,MySQL口试必备
脏读: 在差异的事宜下,当前事宜可以读到其它事宜未提交的数据。其它我们必要留意的是默认的MySQL断绝级别是REPEATABLE READ是不会产生脏读的,脏读产生的前提是必要事宜的断绝级别为READ UNCOMMITTED,以是假如呈现脏读,也许就是这种断绝级别导致的。 下面我们通过一个例子看一下。 从上面这个例子可以看出,当我们的事宜的断绝级别为READ UNCOMMITTED的时辰,在会话A还没有提交时,会话B就可以或许查询到会话A没有提交的数据。 6.2 不行一再读 不行一再读: 是指在一个事宜内多次读取统一荟萃的数据,可是多次读到的数据是纷歧样的,这就违背了数据库事宜的同等性的原则。可是,这跟脏读照旧有区此外,脏读的数据是没有提交的,可是不行一再读的数据是已经提交的数据。 我们通过下面的例子来看一下这种题目的产生。 从上面的例子可以看出,在A的一次会话中,因为会话B插入了数据,导致两次查询的功效纷歧致,以是就呈现了不行一再读的题目。 我们必要留意的是不行一再读读取的数据是已经提交的数据,事宜的断绝级别为READ COMMITTED,这种题目我们是可以接管的。 假如我们必要停止不行一再读的题目的产生,那么我们可以行使Next-Key Lock算法(配置事宜的断绝级别为READ REPEATABLE)来停止,在MySQL中,不行一再读题目就是Phantom Problem,也就是幻像题目。 6.3 丢失更新 丢失更新:指的是一个事宜的更新操纵会被其它一个事宜的更新操纵所包围,从而导致数据的纷歧致。在当前数据库的任何断绝级别下都不会导致丢失更新题目,要呈现这个题目,在多用户计较机体系情形下有也许呈现这种题目。 怎样停止丢失更新的题目呢,我们只必要让事宜的操纵酿成串行化,不要并行执行就可以。 我们一样平常行使SELECT ... FOR UPDATE语句,给操纵加上一个排他X锁。 6.4 小结 这里我们做一个小结,首要是在差异的事宜的断绝级别下呈现的题目的比较,这样就越发清楚了。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |