PDF
行存存储 vs 列存存储 简介 在 OLAP 场景下,我们通常倾向于使用列存(Column-Store)而不是行存(Row Store),做出这种决定的原因很直接:因为列存的 I / O 效率比行存更高,查询数据时,只需要从磁盘(或内存)中读取必要的列即可,具备更好的查询性能。 但列存带来的性能提升,到底是因为其在内部架构的基本原理导致的,还是由于列存这一设计思想而导致的?我们是否可以在传...
mmap 文件 I/O 是操作系统提供的一项功能,它将二级存储中的文件内容映射到程序的地址空间。然后,程序通过指针访问页面,就像文件完全位于内存中一样。操作系统只在程序引用时透明地加载页面,并在内存填满时自动驱逐页面。 mmap 的易用性几十年来一直吸引着数据库管理系统(DBMS)的开发者,作为实现 buffer pool 的一个可行的替代方案。然而,mmap 存在严重的正确性和性能问题,...
BufferPool Innodb为了解决磁盘上磁盘速度和CPU速度不一致的问题,在操作磁盘上的数据时,先将数据加载至内存中,在内存中对数据页进行操作。 Mysql在启动的时候,会向内存申请一块连续的空间,这块空间名为Bufffer Pool,也就是缓冲池,默认情况下Buffer Pool只有128M。 简单的LRU: 新数据插入到链表头部; 每当缓存命中(即缓存数据被访问)...
DBMS与mmap
-