以下文章来源于AustinDatabases ,作者carol11
统计信息,没有数据是没有的,但统计信息怎么收集,标准是什么,怎么使用,就值得去看看了。
要说统计信息,首先说一个表 pg_statistic ,这个表本身是存储数据库的状态信息,其中信息通过analyze 命令来获得,并存在在这个表里面,并且这个表被用于查询计划中。
既然是统计,那就造成这个表里面的存储的值并不是当时当刻最准确的情况,而是一个当前情况的近似值,pg_statistic还存储关于索引表达式值的统计数据。它们被描述为实际的数据列特别是,starelid引用索引。但是,对于普通的非表达式索引列不做任何条目,因为它与底层表列的条目是冗余的。
![8b9cb4d31b3d9bcbbb1e0cb3e429e387.png](https://img-blog.csdnimg.cn/img_convert/8b9cb4d31b3d9bcbbb1e0cb3e429e387.png)
实际上,当你打开这个表,会比较失望,因为根本看不懂这张表里面记录了什么,所以知道这张表的存在就好,实际上我们不需要看这样的表,去对应的View --- pg_stats 才是给相关人员可以识别的数据。
![193377c41797a908dc3f7e28800a7052.png](https://img-blog.csdnimg.cn/img_convert/193377c41797a908dc3f7e28800a7052.png)
借用上图来看