相关文章
16 简单的LRU链表在Buffer Pool实际运行中,可能导致哪些问题?
1、简单回顾一下 之前我们讲解了Buffer Pool在使用过程中如果缓存页都使用了,没有空闲的缓存页时,可以去LRU链表中的尾部找一个最近最少使用的缓存页,把他的数据刷入磁盘,腾出来一个空闲缓存页,然后加载需要的新的磁盘数据页到空闲缓存...
38 案例实战:数据库无法连接故障的定位,Too many connections
今天要给大家分析另外一个真实的大家都经常会碰到的数据库生产故障,就是数据库无法连接的问题 大家会看到的异常信息往往是“ERROR 1040(HY000): Too many connections”,这个时候就是说数据库的连接池里已经有太...
40 重新回顾redo日志对于事务提交后,数据绝对不会丢失的意义
之前我们在给大家介绍了大量的MySQL底层原理知识之后,理论结合实践,给大家讲解了两个真实的生产环境的数据库优化案例,一个是数据库所在服务器的RAID存储系统的锂电池充放电导致的性能抖动问题,一个是数据库底层的linux操作系统的文件句柄限...
41 在Buffer Pool执行完增删改之后,写入日志文件的redo log长什么样?
昨天我们简单给大家回顾了一下在数据库里执行增删改操作的时候,redo log是用来干什么的,为什么需要这个东西,如果没有他会怎么样,有了他之后又能有什么样的效果,想必大家现在都对redo log这个东西有一定的理解了。 那么接下来我们就要...
43 直接强行把redo log写入磁盘?非也,揭秘redo log buffer!
上一讲我们给大家说了一下redo log block这个概念,大家现在都知道平时我们执行完增删改之后,要写入磁盘的redo log,其实应该是先进入到redo log block这个数据结构里去的,然后再进入到磁盘文件里,如下图所示。那么今...
45 如果事务执行到一半要回滚怎么办?再探undo log回滚日志原理!
之前我们已经给大家深入讲解了在执行增删改操作时候的redo log的重做日志原理,其实说白了,就是你对buffer pool里的缓存页执行增删改操作的时候,必须要写对应的redo log记录下来你做了哪些修改 如下图所示,redo log...