PostgreSQL的MVCC是直接在原表通过增加新tuple来实现的,决定了它在大结果集count的时候性能不会太理想,因为需要对大结果集做可见性判断将会是一项繁重的工作,比如下面这种SQL: select count(*) from big_tab; 单纯依靠DB进行优化,确实不是一件容易的事情.本文整理了count(*)的几种方式,并就提升count性能做初步探讨,效果不太理想,如果后续有朋友找到更好的方法,期待分享. 测试表及数据准备 创建一个测试表,并导入5kw的数据量: akendb…