相关文章
15 当Buffer Pool中的缓存页不够的时候,如何基于LRU算法淘汰部分缓存?
1、如果Buffer Pool中的缓存页不够了怎么办? 之前我们已经给大家讲解了Buffer Pool中的缓存页的划分,包括free链表的使用,然后磁盘上的数据页是如何加载到缓存页里去的,包括对缓存页修改之后,flush链表是如何用来记载...
30 用于存放磁盘上的多行数据的数据页到底长个什么样子?
之前我们老是给大家提到一个概念,就是数据页,大家都知道平时我们执行crud的时候,都会从磁盘上加载数据页到Buffer Pool的缓存页里去,然后更新了缓存页后,又会刷新回磁盘上的数据页里去。 所以其实MySQL中进行数据操作的最小单位应...
38 案例实战:数据库无法连接故障的定位,Too many connections
今天要给大家分析另外一个真实的大家都经常会碰到的数据库生产故障,就是数据库无法连接的问题 大家会看到的异常信息往往是“ERROR 1040(HY000): Too many connections”,这个时候就是说数据库的连接池里已经有太...
39 案例实战:如何解决经典的Too many connections故障?背后原理是什么
今天我们继续讲解昨天的那个案例背景,其实就是经典的Too many connections故障,他的核心就是linux的文件句柄限制,导致了MySQL的最大连接数被限制,那么今天来讲讲怎么解决这个问题。 其实核心就是一行命令: ulim...
42 redo log是直接一条一条写入文件的吗?非也,揭秘redo log block!
之前我们已经给大家讲解了redo log自己的一些基本的结构,今天我们就来讲解下一个问题,就是redo log是一条一条的直接就往磁盘文件里写入吗? 可能有一些朋友会认为就是如此简单粗暴的往磁盘文件里写,但其实并没那么简单! 接下来几天...
02 为了执行SQL语句,你知道MySQL用了什么样的架构设计吗?
1、把MySQL当个黑盒子一样执行SQL语句 上一讲我们已经说到,我们的系统采用数据库连接池的方式去并发访问数据库,然后数据库自己其实也会维护一个连接池,其中管理了各种系统跟这台数据库服务器建立的所有连接 我们先看下图回顾一下当我们的系...