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