如何归档最少使用的数据?

时间:2012-07-20 07:40:03

标签: mysql hibernate persistence

环境:JSF2,Hibernate持久化,MySQL

我有一个数据库,由于带有图像数据的表格,所以数据库很快。从不搜索该数据,但只能通过id直接访问。问题是它保留在数据库中,因此扩大了备份和数据库的运行时内存使用量。

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

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

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

谢谢, Milo van der Zee

1 个答案:

答案 0 :(得分:0)

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

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

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

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