实际上这个的现实世界的实现,就是IBM DB2,以数据库理论来说,DB2实现得更加理论化,但如果有用过DB2的DBA,应该对这个数据库与主流数据库(Oracle,MySQL)的实现不一致深为头疼,而实际上...MySQL中有个purge机制,这个(些)线程的工作就是,对于数据对应的事务id已经比当前数据库最老的事务还小,并且被标记为删除的数据,进行清理.在MySQL高版本(5.6及以上)中,这个工作是多线程并行执行的...在MySQL中,曾经提到过MySQL为了清理旧数据,引入了purge这个东西,而在PG中,对应的就是vacuum,主要作用是,回收已经不需要的记录占据的空间.这点上来说,并没有什么问题.
?...undo中,当一个undo上最大的事务id已经小于当前数据库最小事务id了,这个文件就可以被回收掉
3. undo的处理本身,由单独的undo进程操作,其包括undo文件清理,以及事务的回滚处理.
4....实际上如果不考虑vacuum冻结本身,vacuum本身,最多也就造成数据文件膨胀,而不会"在某个时间点数据库不可访问",这个补丁就是基于这种考虑处理的,但事务id在数据库中用处何其多,因此代码补丁是个相当庞大的玩意