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

Multithreading 对存储在hsqldb数据库中的文件的访问是否应该序列化?,multithreading,file-io,hsqldb,Multithreading,File Io,Hsqldb,鉴于: 可以使用ApacheCommonsDBCP包帮助下的连接池并发访问HSQLDB数据库 我将文件存储在嵌入式hsqldb数据库中的缓存表中 众所周知,传统硬盘驱动器(与固态硬盘相反)上的文件不应从多个线程访问,因为我们可能会导致性能下降,而不是性能提升。这是因为使用每个线程上下文开关在文件之间来回移动机械读取头所需的时间 问题: 此规则适用于HSQLDB数据库中管理的文件吗?文件大小可能从几KB到几MB不等 HSQLDB在操作期间访问两个文件以存储数据。一个文件用于所有缓存的表数据,另一

鉴于:

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

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

    HSQLDB在操作期间访问两个文件以存储数据。一个文件用于所有缓存的表数据,另一个文件用于所有LOB。它在内部管理对这些文件的访问

    对于多线程,在以下情况下可能会降低访问速度

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