从berkeley db中删除主索引

时间:2012-01-08 12:14:16

标签: java berkeley-db-je

我使用的是BerkeleyDB的Java版,DPL。

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

最简单的方法是什么?

感谢。

3 个答案:

答案 0 :(得分:1)

原则上你可能需要:

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

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

请参阅:

答案 1 :(得分:0)

如果不了解更多详细信息,您可能需要重新编写数据而不需要删除信息。但是,除非你想节省数百GB,否则我不会打扰。如果你需要,我会获得更多的磁盘空间。

答案 2 :(得分:0)

我相信你需要做以下事情:

  1. 使用您想要的架构创建一个新的表结构
  2. 从旧结构中读取每一行并将其迁移到新结构中,随着时间的推移进行修改(删除/以其他方式改变数据)
  3. 如果关注空间,即使是暂时的,也可以随时从旧表中删除数据
  4. 以上是否合适取决于细节。

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