创建 bts 索引时,删除行的缺省方式为延迟 (delete='deferred')。 对表中的行执行的删除操作将在 bts 索引中把该行标记为已删除。如果向索引添加更多文档,可以回收磁盘空间。对 bts 列执行的查询不会返回已删除文档。
oncheck -ci -y db_name:table_name#index_name
也可以使用 bts_index_compact() 函数释放标记为已删除行的磁盘空间。这两种方法的差别是 bts_index_compact() 函数要求您知道 bts 索引的目录路径,而使用 oncheck 实用程序则要求您知道数据库名称、表名和索引名。这两种方法的功能相同。
在延迟方式下,删除操作的速度更快。延迟方式最适合用于经常更新的大型索引。应通过 oncheck 实用程序或使用 bts_index_compact() 函数手动优化(压缩)索引。
有关 oncheck 实用程序的信息,请参阅《GBase 8s 管理员参考》。有关 bts_index_compact() 函数的语法,请参阅 bts_index_compact() 函数。