Berkeley DB SQL 5.2新Vacuum功能简介
Berkeley DB 5.2版本在六月份顺利发布了。在这一版本中,我负责设计实现了Berkeley DB SQL的新Vacuum功能:增量Vacuum和Fill Percent参数。以下向大家介绍一下这些Vacuum功能的用法。
1. 什么是Vacuum
一个数据库在进行多次写操作(增,删,改)后,就会攒下一些碎片,即填充率非常低的页面(page)或是空白页面。这些页面占用了不少空间,却仅存储了少量数据。Vacuum的作用好比Windows下的磁盘碎片整理,即依次扫描数据库的数据页面,将数据搬移得更加紧凑,腾出空白页并且删除之,缩减数据库大小。Berkeley DB SQL(以下简称DBSQL)支持在线Vacuum(对一个正在运行的数据库进行操作)。你可以把它想像成扫描重排页面数据的写进程,这个进程可以和其它的所有OLDP操作并行执行。
在使用Vacuum时需要清楚以下要点:
- 整理数据碎片,回收文件系统空间,提升查询性能。
- 频繁操作会影响当前主业务性能。因此在DBSQL 5.2版本中,针对这一问题实现了增量Vacuum。用户可手动控制Vacuum操作涉及的数据块大小。
- 如果数据库被压得过紧,空闲空间不足,那么插入新数据时数据库需要频繁分配新页面,影响了操作性能。因此在DBSQL 5.2版本中,针对这一问题引入了Fill Percent参数。用户可手动控制Vacuum时的页面填充率。
以下具体介绍Berkeley DB SQL (以下简称DBSQL) 5.2版本中Vacuum功能的使用方法:
阅读全文…
最近评论