PG的物理存储结构
采用堆表的形式,区别于mysql的聚集索引组织表。 2. PG的版本控制 实现MVCC的方法有两种: 1)写数据时,将旧数据移到一个单独的地方,比如回滚段中,从回滚段把旧数据读回来 2)写数据时,旧数据不删除,而是插入新数据,旧数据写文件。 MySQL,Oracle基本上是通过第一种方式操作,而PostGres则通过第二种操作, 针对第一种来说第二种的劣势:旧版本的数据块需要清理,旧版本的数据因为在文件中,访问可能会造成I/O及扫描更多的数据块, 优势:数据可以进行很多更新,不必担心没有回滚段或者回滚段装不下数据, 事物回滚可以立即完成,无论事物进行了多少操作, 针对多版本并发介绍几个要的术语, 表中的隐含字段: oid tableoid ctid xmin xmax cmin cmax 后四个字段实现控制数据行是否对用户可见 3. 空间回收 vacuum整理空间
