PostgreSQL/openGauss explain解析(四): indexonlyscan和 覆盖索引

前2篇中对index only scan的测试能看出在 Oracle、MySQL(InnoDB)、PostgreSQL三类数据库中,对于OLTP高负载的场景中,oracle和mysql(innodb)都是块级别的MVCC是可以做到真正的index only scan, 而postgresql因为MVCC的可见性不存储在索引,在数据变更后会带来indexonlyscan with heap fetchesl回表,效率可能有所减退。通常在Oracle中如想做到index 覆盖到所有查询的列,会创建多列复合索引或function索引,避免索引查询回表,但在Postgresql或openGauss系中索引相对Oracle还有两种特殊情况

,