是否应该序列化对存储在 hsqldb 数据库中的文件的访问?

Posted

技术标签:

【中文标题】是否应该序列化对存储在 hsqldb 数据库中的文件的访问?【英文标题】:Should access to files stored in an hsqldb database be serialized? 【发布时间】:2013-03-04 11:36:38 【问题描述】:

给定:

    在 apache commons dbcp 包的帮助下,可以使用池化连接同时访问 HSQLDB 数据库。 我将文件存储在 嵌入式 hsqldb 数据库中的缓存表中。 众所周知,不应从多个线程访问传统硬盘驱动器(与固态硬盘相反)上的文件,因为我们可能会降低性能而不是提升性能。这是因为使用每个线程上下文切换在文件之间来回移动机械读取头需要时间。

问题:

此规则是否适用于在 HSQLDB 数据库中管理的文件?文件大小可能从几 KB 到几 MB 不等。

【问题讨论】:

【参考方案1】:

HSQLDB 在操作过程中访问两个文件进行数据存储。一个文件用于所有 CACHED 表数据,另一个文件用于所有 lob。它在内部管理对这些文件的访问。

使用多线程,在以下情况下可能会降低访问速度。

    同时对大型表进行读写访问。 同时对大于 500KB 的 lob 进行读写访问。

【讨论】:

以上是关于是否应该序列化对存储在 hsqldb 数据库中的文件的访问?的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB 2.3.3:如何为序列返回下一个值的数组

HSQLDB - 如何处理“VARCHAR”类型的存储?

是否可以仅将 HSQLDB 持久保存到内存中没有任何数据的文件?

如何在文本框中使用换行符?

是否可以在 HSQLDB 中有虚拟列

HSQLDB:退出存储过程