
关系型数据库
文章平均质量分 96
Orcale / MySql / PostgreSQL
普通人zzz~
除了成功,别无选择
展开
-
MySQL系统架构设计
MySQL InnoDB 的 Page Cache 默认大小为 16k,但是正常操作系统 Page 为 4k,所以会存在 16K 只写入了一部分的极端情况,如当 InnoDB 在进行数据页的写入操作时,磁盘挂了,就可能导致 16k 只写了一部分情况,产生页断裂,导致数据部分失效,这种失效是无法回滚的,所以为了避免这种情况,引入了 Doublewrite Buffer。如果在数据修改的时候,对应的数据页不存在,那么就会先从磁盘中加载数据到 Buffer Pool,然后进行修改,执行之前流程。原创 2023-09-26 16:57:19 · 1843 阅读 · 4 评论 -
MySQL索引设计与选择
从上面这个图可以看到,真正的数据仍然是保存到主键索引的叶子节点(这也就是为什么InnoDB表必须要有主键的原因),而辅助索引的叶子节点的数据区保存的是主键索引的关键字的值(非主键索引叶子节点的逻辑顺序和磁盘顺序不一致)。从MyISAM引擎中索引的实现来看,由于索引文件和数据文件是分离的,叶 子节点存储的是数据文件对应的磁盘地址,从索引文件.MYI中找到键值后, 会到数据文件.MYD中获取相应的数据记录。在日常生活中,存在很多用到“索引”的地方,比如中华字典目录,图书馆分类,一本书籍目录,等待。原创 2023-09-26 17:01:22 · 369 阅读 · 0 评论