1> 只查询索引列,不用索引
select count(pk_col) from tabName;
![](https://img2020.cnblogs.com/blog/1990515/202003/1990515-20200330150318000-1617487381.png)
结果走的是全表扫描seq_scan,原因是pg走索引后需要回表验证是否对此查询可用。
必须验证每一个检索到的行对该查询的 MVCC 快照是"可用的"。可见性信息并不存储在索引项中,只存储在表的行记录中
2> PG索引存空值
select * from tabName where pk_col is null
走索引
![](https://img2020.cnblogs.com/blog/1990515/202003/1990515-20200330150326152-1283285160.png)
原因是null值在PG的索引里是可存的,oracle是不存的。
3> 查表与索引大小
select pg_size_pretty(pg_relation_size('playboy_id_pk')); //查看索大小
select pg_size_pretty(pg_relation_size('test')); //以KB,MB,GB的方式来查看表大小