Gumihoy
06
03
20 | 幻读是什么,幻读有什么问题 20 | 幻读是什么,幻读有什么问题
在上一篇文章最后,我给你留了一个关于加锁规则的问题。今天,我们就从这个问题说起吧。 为了便于说明问题,这一篇文章,我们就先使用一个小一点儿的表。建表和初始化语句如下(为了便于本期的例子说明,我把上篇文章中用到的表结构做了点儿修改): CRE
2019-06-03
03
21 | 为什么我只改一行的语句,锁这么多 21 | 为什么我只改一行的语句,锁这么多
在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。
2019-06-03
03
22 | MySQL有哪些“饮鸩止渴”提高性能的方法 22 | MySQL有哪些“饮鸩止渴”提高性能的方法
不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 我以前做业务护航的时候,就偶尔会碰上这种场景。用户的开发负责人说,不管你用什么方案,让业务先跑起来
2019-06-03
03
23 | MySQL是怎么保证数据不丢的 23 | MySQL是怎么保证数据不丢的
今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法。从文章标题“MySQL 是怎么保证数据不丢的?”,你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关。 在专栏前面文章和答疑篇中,我都着重介绍了 WAL 机制(你可以再回顾
2019-06-03
03
24 | MySQL是怎么保证主备一致的 24 | MySQL是怎么保证主备一致的
在前面的文章中,我不止一次地和你提到了 binlog,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。 毫不夸张地说
2019-06-03
03
25 | MySQL是怎么保证高可用的 25 | MySQL是怎么保证高可用的
在上一篇文章中,我和你介绍了 binlog 的基本内容,在一个主备关系中,每个备库接收主库的 binlog 并执行。 正常情况下,只要主库执行更新生成的所有 binlog,都可以传到备库并被正确地执行,备库就能达到跟主库一致的状态,这就是最
2019-06-03
03
26 | 备库为什么会延迟好几个小时?-并发逻辑 26 | 备库为什么会延迟好几个小时?-并发逻辑
在上一篇文章中,我和你介绍了几种可能导致备库延迟的原因。你会发现,这些场景里,不论是偶发性的查询压力,还是备份,对备库延迟的影响一般是分钟级的,而且在备库恢复正常以后都能够追上来。 但是,如果备库执行日志的速度持续低于主库生成日志的速度,那
2019-06-03
4 / 11