且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《PostgreSQL服务器编程》一一1.9 关于缓存

更新时间:2022-10-02 15:11:28

本节书摘来自华章计算机《PostgreSQL服务器编程》一书中的第1章,第1.9节,作者:(美)Hannu Krosing, Jim Mlodgenski, Kirk Roybal 著
,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.9 关于缓存

对于服务端程序设计而言,另外一个可以派上用场的地方是用来缓存数值,这些数值的计算成本较高。这里采用的基本模式是:
1)检查数值是否已经缓存。
2)如果没有数值或者数值过于陈旧,那么计算并且进行数值缓存。
3)返回缓存后的数值。
举个例子,计算一个公司的销售额便是一个非常适合缓存的项目。一家大型零售公司可能拥有100个仓库,其每天可能有百万级的个人销售交易记录。如果公司总部准备查看销售趋势,那相比于对每日百万级的交易数据进行汇总,有一种更高效的处理方法,那就是在仓库层级,将每天的销售数据进行预计算。
如果数值比较简单,比如从一个基于用户ID的单表查看一个用户的信息,你是不需要做任何事情的。当数值在PostgreSQL的内部页面缓存区进行缓存之后,所有对缓存值的查询都变得非常快速,以至于即使在一个非常高速的网络里,查询的大多数时间都花费在网络上,而不是当前的查询本身。在这种情况下,从PostgreSQL数据库获取数据的速度就跟从任何其他内存缓存(比如memcached)一样快速,而且在进行缓存管理时也没有其他的
开销。
另外一个使用缓存的例子是实现物化视图。这些视图只有在需要的时候才进行预计算,而不是每次都要从视图中进行查询。一些SQL数据库把物化视图作为一个分割开的数据库对象,但是在PostgreSQL中,你需要靠自己,使用其他数据库支持的特性将全部工序自
动化。