MariaDB中没有合并表 - 非常大的表的选项?

时间:2014-09-09 18:24:43

标签: merge myisam mariadb

我很高兴使用MySQl多年,并且非常感兴趣地关注了MariahDB。

我的一个项目的服务器已达到使用寿命并需要重新托管 - 可能是CentOS 7,其中包括MariahDB

我担心的一个问题是缺少合并表功能,我广泛使用它。我们有一个非常大的(至少按我的标准)数据集,大约100M记录/ 20GB(大多数数据被压缩)并且在不断增长。我把它分成了由数据纪元组织的只读压缩myisam“存档”表,以及用于当前数据和插入的常规myisam表。然后我用合并表来跨越所有这些。

然后编写针对此数据库的软件,以便确定从相关时间跨度检索数据的表,如果时间跨度跨越多个表,则查询覆盖的合并表。

这对我有一些帮助:

  • 对于较小的表,查询更快 - 遗憾的是,最典型查询所需的索引,以及防止重复记录相对复杂
  • 使用户不必查询多个表并在查询跨越多个表时汇总结果
  • 允许>驻留在压缩表中的90%数据可以节省大量磁盘空间
  • 我可以备份一次存档表 - 这可以节省夜间备份的大量时间,带宽和存储空间

如何在没有合并表的情况下处理此问题的建议?是否有其他表类型提供myisam的压缩,只读选项?

我想我们可能不得不使用单独的表,并使用额外的复杂功能并更改使用此数据库的多个项目中的所有代码。

1 个答案:

答案 0 :(得分:1)

MariaDB 10引入了CONNECT storage engine,它做了很多不同的事情。它提供的表类型之一是TBL,它基本上是MERGE表类型的扩展。 TBL CONNECT类型目前是只读的,但您应该能够根据需要插入基表。这可能是你最好的选择,但我一般不熟悉CONNECT引擎,你需要做一些实验来决定它是否有效。