pqc介绍
pqc(PostgreSQL Query Cache)是一个通过缓存查询结果集来提高查询性能的开源插件。它是基于memcached实现。memcached是一个分布式对象缓存系统,它是一个基于key-value的结果存储。其实memcached主要的作用就是用来缓存查询的结果,用以提高查询效率。
pqc对于查询结果的缓存实现为:当进行第一次查询时,pqc会把用户名user,查询语句query以及数据库db三个参数值做一个MD5校验值当做key,然后把query的查询结果当做value值,组成一对(key,value)。当进行下一次查询时,pqc继续对(user,query,db)生成MD5校验值,然后对比缓存中存储的key值,如果相同直接返回查询结果(即可以的value值),而不必再生成执行计划进行执行。所以在执行效率上会有一个飞跃的提升。
其实pqc还有pgpool连接池的功能,pqc缓存的查询结果集,就是存储在这些连接池的缓存中。所以只有通过pgpool连接池连接数据库时,才能通过缓存结果集返回查询结果。
pqc使用
编译安装
1. 安装libevent依赖
libevent是一个事件通知库,是安装memcached系统所依赖的事件处理和网通通信工具。从网上下载源码:
https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
解压后,可直接:configure & make & make install编译安装,或者通过yum install libevent安装。
2. 安装memcached
网上下载源码:
https://memcached.org/files/memcached-1.5.16.tar.gz
解压后,直接:configure & make & make install 编译安装。
3. 安装libmemcached
memcached在系统中是以server端的角色存在,libmemcached是memcached的客户端库,用以实现对分布式管理及内存池的管理等。
https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
解压后,直接:configure & make & make install 编译安装。
4. 安装pqc
上述依赖安装完之后,就可以安装pqc了。该插件可以从github上下载源码。
https://github.com/snaga/pqc
同样,下载源码后,解压,直接:configure & make & make install 编译安装。
使用
1. 配置pqcd.conf
#
# pqcd configuration file sampl