0

我使用 BerkeleyDB 的 java 版本,DPL。

在将数据解析到 BerkeleyDB 时,我将一些时间信息存储在特定的 PrimaryIndex 中。这个 PrimaryIndex 占用大量空间,我想删除存储在那里的所有数据并释放 HD 上使用的空间。

最简单的方法是什么?

谢谢。

4

3 回答 3

1

原则上,您可能需要:

  • 更改表结构以将主索引更改为另一列,因为 BDB 表需要主键
  • 更改表结构以删除不再需要的列

Peter 是对的,我们需要更具体的细节(例如表结构 DDL)才能给您任何具体的答案。

看:

于 2012-01-08T12:23:24.023 回答
0

我相信您需要执行以下操作:

  1. 使用您想要的架构创建一个新的表结构
  2. 从旧结构中读取每一行并将其迁移到新结构中,并在进行时对其进行修改(删除/否则会改变数据)
  3. 如果担心空间,即使是暂时的,请随时从旧表中删除数据

以上是否合适将取决于细节。

使用 ALTER TABLE 语法的 SQL 数据库会更容易,但我希望您的设计决策有原因(可能基于性能)。

于 2012-01-08T12:34:54.653 回答
0

在不了解更多详细信息的情况下,您可能需要在没有您想要删除的信息的情况下重新写入数据。但是,除非您希望节省数百 GB,否则我不会打扰。如果您需要,我会获得更多磁盘空间。

于 2012-01-08T12:18:00.033 回答