
# 什么是死元组？
答：GaussDB目前使用Astore存储引擎，数据的更新是通过追加方式实现的，即对数据执行UPDATE或DELETE操作只是被标识为删除状态，并未立即释放空间。这种处理对于多版本并发控制（MVCC）是必要的，如果一个元组的版本仍有可能被其它事务看到，那么就不能删除。
当事务提交后，过期元组版本将对事务不再有效，这些元组就会被标记为死元组。
死元组的产生也是因为GaussDB中没有单独的回滚段，而是将历史版本直接记录在数据页面中。过多的死元组会占用大量的存储空间，同时大量未清理的死元组存在，会导致索引指向大量无效页面，从而影响到SQL通过索引扫描的效率。
