1

环境:JSF2、Hibernate 持久化、MySQL

由于一个包含图像数据的表,我有一个正在快速填充的数据库。该数据永远不会被搜索,而只能通过 id 直接访问。问题是它保留在数据库中,因此扩大了数据库的备份和运行时内存使用量。

我认为可能有多种解决方案:

  • 告诉 MySQL 该表不应该被缓存和/或保存在内存中。
  • 根本不要对那个表使用 MySQL。只是让持久性知道这应该直接存储在磁盘上。
  • ???

但我也没有找到办法。请指教。

谢谢,米洛范德泽

4

1 回答 1

0

存储类型取决于 MySQL 中的存储引擎。只有具有 MEMORY 存储引擎的表存储在 RAM 中,其他表存储在磁盘上。

在选择查询中,您可以SELECT SQL_NO_CACHE用来告诉 MySQL 不要在 MySQL 查询缓存中缓存查询数据。

您可以通过在表上定义分区来对表进行分区。这将使插入和选择更快。

您还可以创建像 table_name_2012_07_20 这样的日间表和具有旧日期的存档表,并以压缩格式存储数据,您可以使用存档存储引擎,或者如果您正在使用 MyIsam 存储引擎,则执行 myisamchk 或 myisampack 以节省硬盘驱动器上的磁盘空间.

于 2012-07-20T07:57:30.987 回答