【发布时间】:2011-05-03 19:37:27
【问题描述】:
有人知道是否有任何方法可以更改 HSQLDB 中现有表的模式?默认情况下,它们都处于内存模式,但是到那时,其中一些变得非常大,因此它们吃掉了我所有的(RAM)内存。我想将它们转换为“缓存”模式,但我没有找到任何解决方案。但是,不要丢失任何现有数据,这一点非常重要。
谢谢,
【问题讨论】:
有人知道是否有任何方法可以更改 HSQLDB 中现有表的模式?默认情况下,它们都处于内存模式,但是到那时,其中一些变得非常大,因此它们吃掉了我所有的(RAM)内存。我想将它们转换为“缓存”模式,但我没有找到任何解决方案。但是,不要丢失任何现有数据,这一点非常重要。
谢谢,
【问题讨论】:
在 2.0 版本中使用:
SET TABLE mytable 类型缓存
在早期版本中: 关闭数据库,编辑 .script 文件并将“CREATE TABLE MYTABLE ...”或“CREATE MEMORY TABLE MYTABLE ...”更改为“CREATE CACHED TABLE MYTABLE”,然后保存。打开数据库时,它将更改表类型。然后您应该关闭数据库一次以完成更改。
【讨论】:
CACHED 表是使用 创建缓存表命令。只有一部分 他们的数据或索引保存在 内存,允许大表 否则最多需要几个 百兆内存。其他 缓存表的优点是 数据库引擎花费更少的时间 使用缓存表时启动 对于大量数据。这 缓存表的缺点是 速度降低。不要使用缓存 如果您的数据集相对 小的。在一些应用程序中 小桌子和一些大桌子,它 最好使用默认值,MEMORY 小桌子的模式。
【讨论】: