更新时间:2026-07-28 GMT+08:00
分享

什么是死元组?

答:GaussDB目前使用Astore存储引擎,数据的更新是通过追加方式实现的,即对数据执行UPDATE或DELETE操作只是被标识为删除状态,并未立即释放空间。这种处理对于多版本并发控制(MVCC)是必要的,如果一个元组的版本仍有可能被其它事务看到,那么就不能删除。

当事务提交后,过期元组版本将对事务不再有效,这些元组就会被标记为死元组。

死元组的产生也是因为GaussDB中没有单独的回滚段,而是将历史版本直接记录在数据页面中。过多的死元组会占用大量的存储空间,同时大量未清理的死元组存在,会导致索引指向大量无效页面,从而影响到SQL通过索引扫描的效率。

相关文档