PG使用多版本并发控制MVCC机制:
l 当执行delete时,数据库将删除元组直接标记为dead,并不会真正从物理上删除;
l 当执行update时,数据库将会使用unused空间写入一个新的元组,然后将旧元组标记为dead,也不进行物理删除;
l 当表上频繁DML时,dead tuple会逐渐将空间耗尽,同时做全表扫描时产生很多额外I/O。
GBase 8c采用原位更新技术:
l 将new tuple放在原位,将dead tuple集中存放在undo;
l 去除vacuum,保证数据回收时IO稳定;
l 数据空间缩减。
这带来的好处就包括:
l 高性能:对插入、更新、删除等不同负载的业务,性能以及资源使用表现相对均衡,相比Append Update引擎性能提升10%
l 运行平稳:性能运行平稳,8小时性能滚降值从13.8%降低至2.5%
l 高效存储:支持最大限度的原位更新, TPCC负载下平均节约空间15%~20%,UNDO空间统一分配,集中回收,复用效率更高,存储空间使用更加高效、平稳。