【发布时间】:2014-09-09 18:24:42
【问题描述】:
多年来我一直在愉快地使用 MySQl,并且对 MariahDB 分支感兴趣。
我的一个项目的服务器即将报废,需要重新托管 - 可能是 CentOS 7,其中包括 MariahDB
我担心的一个问题是缺少我广泛使用的合并表功能。我们有一个非常大的(至少按照我的标准)数据集,大约有 100M 记录/20 GB(大多数数据被压缩)并且还在增长。我已将其拆分为按数据时代组织的只读压缩 myisam“存档”表,以及用于当前数据和插入的常规 myisam 表。然后我用一个合并表跨越所有这些。
然后编写针对此数据库的软件,以便确定从哪个表中检索相关时间跨度的数据,如果时间跨度跨越多个表,它会查询覆盖的合并表。
这为我做了几件事:
- 对于较小的表,查询要快得多 - 不幸的是,最典型的查询所需的索引以及防止重复记录相对复杂
- 当查询跨越多个表时,用户不必查询多个表并组合结果
- 允许 > 90% 的数据驻留在压缩表中可以节省大量磁盘空间
- 我可以备份存档表一次 - 这可以节省大量时间、带宽和存储空间
关于如何在不合并表的情况下处理此问题的建议?是否有任何其他表类型提供 myisam 提供的压缩只读选项?
我认为我们可能不得不使用单独的表,并忍受额外的复杂性并更改使用该数据库的多个项目中的所有代码。
【问题讨论】: