压缩表或表分段之前,可估算压缩数据后将可节约的空间量。显示的比率根据行数据的样本估算。实际节约的空间比率可能稍有不同。
例如,服务器通常尝试将整个行放入一页中。因此,如果每个未压缩行几乎填满一整页,并且压缩率低于 50%,那么每个压缩行仍将填满大半页,而即使在压缩之后,服务器仍倾向于将每行放在单独的一页上。在这种情况下,尽管估算的压缩率可能为 45%,实际节约的空间则可能为 0%。
每个未压缩行填充页的一半稍多。每个未压缩行将占用一整页,因为两个整行的总大小已超出一页。 例如,估算的压缩率可能为 5%,但是该压缩率可能刚够将每个行收缩到小于半页。所以,压缩之后,两行可放入一页,实际节约的空间可能为 50%。
实际获得的压缩可能与估算不一样,因为 GBase 8s 在一页中存储的行数不能超过 255。所以小行或大页会减少压缩可获得的节约总量。 例如,如果压缩前一页中有 200 行,无论压缩后行有多小,最大有效压缩率均接近 20%,因为压缩后一页中只能有 255 行。
如果压缩操作包含重新打包操作、收缩操作或重新打包并收缩操作,那么可节约更多(或更少)空间。仅当一页中的压缩行数超过了未压缩行数,重新打包操作才能节约更多空间。如果重新打包操作释放出空间,那么收缩操作可以在数据库空间级别节约空间。