- 我正在考虑使用 MySQL 集群,但我很好奇它是否支持大数据库 - 大约 50-60GB 或者限制是多少(主要存储 Radius 电信公司会计信息)。
- 那么架构是什么样的(RAM 和服务器数量)?
谢谢。
答案1
以前,数据库必须装入内存才能使用 MySQL 集群。我认为现在的情况是,索引必须装入内存,但数据可以受磁盘限制。如果您的服务器有足够的内存(64GB 是完全有可能的),那么您就准备好了。
MySQL 集群是一个比较小众的案例,我认为在大多数情况下,问题都有更好的解决方案。如果你能给我更多细节,我会以同样的方式回复。
回复第一条评论由于内存限制,集群是一个小众的东西。通常在大型事物需要冗余的情况下,速度却不是。集群硬件要求对于每天处理 5,500 个 RADIUS 行插入来说过于苛刻。我建议您使用分片设置。将集群用于当前条目,然后将它们复制到具有正常备份和离线/服务时间的常规服务器以处理历史数据。这将为您提供集群的稳定性,有力地确保您不会丢失任何数据或遭受停机。
答案2
单个 mysql 服务器可以处理 50-60GB 的数据。这实际上取决于您的数据库设置以及查询的复杂程度。
我的意思是,你可以通过编写一个不进行连接的应用程序来让 mysql 飞起来..或者您可以通过执行非常复杂的查询让它爬行。
如果您首先想要简单的冗余,我会选择集群。
编辑集群内存数学
使用以下公式计算每个存储节点所需的 RAM 数量:
(Size of database * NumberofReplicas * 1.1) / Number of storage nodes
NumberofReplicas 默认设置为 2。如果需要,您可以在 config.ini 中更改它。例如,要在两台服务器上运行 4GB 数据库并将 NumbeOfReplicas 设置为 2,则每个存储节点需要 4.4 GB 的 RAM。对于 SQL 节点和管理节点,您根本不需要太多 RAM。要在 4 台服务器上运行 4GB 数据库并将 NumberOfReplicas 设置为 2,则每个节点需要 2.2GB。