CMU Advanced DB 课程笔记#1:传统DBMS读取操作原理和内存模型以及In-memory DBMS的改进
CMU Advanced DB 课程笔记#1:传统DBMS读取操作原理和内存模型以及In-memory DBMS的改进
数据库管理系统被创建之初,硬件设施是很简陋的,当时的CPU只有一核,RAM严重不足,数据库需要被存在硬盘中去,并且访问硬盘的速度极其的慢,当时数据库很大一部分都是在做将数据从硬盘和内存之间来回移动的工作。
但是现在DRAM的存储空间越来越大,许多数据库都可以直接被放进内存中去(除了数据仓库等等),所以频繁访问硬盘所造成的低性能已经不能忽视了,In-memory DBMS开始兴起。
Disk-oriented DBMS介绍
读数据操作
Disk-oriented DBMS:数据库的主要存贮地方是非易失性存储器(non-volatile storage)比如磁盘或者固态硬盘。当系统需要读取数据的时候,DB总是假定数据不在内存中,而在磁盘中,DB需要从磁盘中拿数据。
数据库在磁盘中由固定大小的slotted pages组成,pages里面包含存入的数据(tuple)。当数据从磁盘中取出的时候,我们先把数据放在In-memory buffer pool中缓存起来。
In-memory buffer pool是数据库直接操作的对象,我们对buffer pool处理过后,数据才会被写到磁盘中。buffer pool manager负责数据在磁盘和内存之间的移动