连接PostgreSQL时,如何指定参数
背景 连接数据库时,如何配置默认参数? libpq https://www.postgresql.org/docs/9.6/static/libpq-connect.html#LIBPQ-CONNSTRING 所有支持的连接参数都在以上链接中 KV模式 配置连接串时,可以使用KV模式,例子 host=lo...
背景 连接数据库时,如何配置默认参数? libpq https://www.postgresql.org/docs/9.6/static/libpq-connect.html#LIBPQ-CONNSTRING 所有支持的连接参数都在以上链接中 KV模式 配置连接串时,可以使用KV模式,例子 host=lo...
背景 人群透视是商业与数据结合的案例之一,比如大型商场的选址,可与分析的数据包括车流、人流量等等。 结合数据可以更深入的分析人群的组成结构,消费能力等等,给大型商场的选址带来更多的参考价值。 那么如何使用数据库透视人群数据呢? 场景构建 1. 人群属性表 记载了每个人的各个属性段落,比如收入、车龄...
背景 市面上有很多代码的版本管理软件,比如gitlab, github, svn等等。 商业数据库的编程能力较强,比如Oracle的PL/SQL,很多传统企业会将对一致性、可靠性要求非常高的业务逻辑放到数据库中,这就造成了数据库内不仅仅存储数据,也存储了部分业务代码。 PostgreSQL 作为开源界最高级的...
背景 如果我们要查看Linux下面进程、进程组、线程的资源消耗的统计信息,可以使用pidstat,它可以收集并报告进程的统计信息。 pidstat实际上也是将/proc/pid下的统计信息统筹后展现给用户。 pidstat例子 1. 列出IO统计信息:-d 2. 列出内存使用统计,page fault:-...
背景 Oracle的分析函数RATIO_TO_REPORT()是用于计算当前值在分组内的占比的 RATIO_TO_REPORT is an analytic function. It computes the ratio of a value to the sum of a set of values. ...
背景 开车的同学都喜欢一马平川,最好是车道很多,车很少,开起来爽。 大家想象一下,同样的车速,6车道每秒可以通过6辆车,而1车道每秒就只能通过1辆车。 好了,我们回到IO层面,我们在使用fio测试块设备的IO能力时,可以选择多少个线程进行压测,实际可以理解为开多少车道的意思。 只要没到通道或者设备本身的...
背景 功能较为强大的数据库,通常都有query rewrite的功能,比如JOIN时提升或下推条件,调整JOIN顺序等。 例如 create table a(id int, info text); create table b(id int, info text); create index idx_...
背景 PostgreSQL支持三种JOIN的方法,nestloop, merge, hash。 这三种JOIN方法的差别和原理可以参考 https://www.postgresql.org/docs/devel/static/planner-optimizer.html 《PostgreSQL nestlo...
背景 在PostgreSQL中,多个单列索引是可以用在组合查询SQL中的,也就是说实现了bitmap scan。 比如 select * from tbl where c1=1 and c2=1 or c3=1; 用到了3列,如果这3列分别有一个索引,那么PostgreSQL会使用这三个索引的bitmap ...
背景 聚集存储比较好理解,数据按照聚集KEY存储在一个或相邻的数据块中,对聚集KEY的轨迹、行为数据检索可以大幅减少IO。 那么聚集索引呢?我们知道通常BTREE索引中存储的是KEY以及对应数据的堆表行号,每条记录一个索引条目。 而GIN索引也是树结构,只不过它对于单个KEY只存储一个条目,所有行号会存储到一...