PolarDB O Edition allows you to run the VACUUM command to reclaim the storage space that is occupied by dead tuples. If the released dead tuple space is reclaimed, the space is not returned to the operating system but can be used to store the newly inserted or updated data.
In the preceding figure,
tuple2 represent valid data rows, and
unused represents invalid data rows. After garbage collection, the storage space that is occupied by invalid data rows is released and can be reused.
PolarDB O Edition implements the multiversion concurrency control (MVCC) mechanism by using multiple versions. When you perform the UPDATE and DELETE operations, a new version of data rows is generated, and the earlier version of data rows becomes invalid. The invalid version data occupies the space of data blocks and you must clear the space in a timely manner. Otherwise, data bloat occurs. If the number of invalid data rows accounts for a specific proportion of the total number of data rows (you can customize the proportion of the number of invalid rows based on your requirements), PolarDB O Edition automatically triggers the garbage collection action. PolarDB-O runs the VACUUM process to reclaim the storage space that is occupied by dead tuples. You can also manually run
vacuum table_name to reclaim the storage space that is occupied by dead tuples.