数据库的前端缓存区

2018年03月22日 08:33 | 1035次浏览 作者原创 版权保护

还记得我们曾经介绍过的文件系统内核缓冲区(Buffer Area)吗?它位于物理内存的内核地址空间,除了使用 O_DIRECT 标 记打开的文件之外,所有对磁盘文件的读写操作都要经过它,所以你也可以把它看成是磁盘的前端设备。 

这块内核缓冲区也称为页高速缓存(Page Cache),实际上它包括以下两部分:

 1,读缓存区 

 2,写缓存区 

读缓存区中保存着最近系统从磁盘上读取的数据,一旦下次需要读取这些数据的时候,内核将直接从这里获得,而不需要访 问磁盘。 

写缓存区的目的主要在于减少磁盘的物理写操作,通常情况下向磁盘中写入数据并不着急,进程不需要因为写操作而等待, 内核缓冲区可以将多次写操作的指令累积起来,通过一次物理磁头的移动来完成。当然,写缓存区导致数据真正写入磁盘会 产生几秒的延迟,在实际写入磁盘之前,这些数据被称为脏页(Dirty Page)。 

其实,从工作职能上看,将写缓存区称为缓冲区更加形象,缓冲区的例子在生活中处处可见,比如城市道路的十字路口,它 就像一个写缓冲区,红灯亮起的时候,车辆都停在缓冲区,当变成绿灯后,车辆开始依次前进,这就像内核缓冲区中的数据 积累到一定程度时被写入磁盘。

 一个有趣的现象是,有些城市会在十字路口增加左转弯等待区,多么美妙的想法啊,它使得缓冲区与目的地的距离更加接近, 绿灯时将会有更多的车辆通行,提高了道路的吞吐率。

 同样的,类似于页高速缓存,我们也可以在数据库和动态内容之间建立一层缓存区,它可以部署在独立的服务器上,用于加 速数据库的读写操作,这个缓存区实际上是由动态内容来控制的。


此文章本站原创,地址 https://www.vxzsk.com/692.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程


上一篇:css继承 下一篇:使用 memcached
^