gpt4 book ai didi

mysql - 处理大型数据库表的策略

转载 作者:IT王子 更新时间:2023-10-29 00:35:01 27 4
gpt4 key购买 nike

我正在考虑构建一个 Rails 应用程序,它将有一些漂亮的超过 5 亿行的大表。为了保持活泼我目前正在研究如何将一张大 table 分成更多可管理的 block 。我看到从 MySQL 5.1 开始有一个分区选项,这是一个可能的选项,但我不喜欢列的方式确定分区必须是主键的一部分 table 。

我真正想做的是拆分 AR 模型写入的表基于所写的值,但据我所知,没有办法这样做 - 有没有人对我如何可能有任何建议实现此策略或任何替代策略?

谢谢

阿尔丰

最佳答案

MySQL 中的分区列不限于主键。事实上,分区列根本不必是键(尽管会透明地为它创建一个键)。您可以按 RANGE、HASH、KEY 和 LIST 进行分区(这与 RANGE 类似,只是它是一组离散值)。阅读 an overview 的 MySQL 手册分区类型。

还有其他解决方案,例如 HScale - 一个中间件插件,可以根据某些标准透明地对表进行分区。 HiveDB是一个用于 MySQL 水平分区的开源框架。

除了分片和分区之外,您还应该使用某种集群。最简单的设置是基于复制的设置,可帮助您将负载分散到多个物理服务器上。您还应该考虑更高级的集群解决方案,例如 MySQL 集群(由于数据库的大小,可能不是一个选项)和集群中间件,例如 Sequioa .

我实际上问了一个关于 scaling with MySQL 的相关问题。前段时间在stack-overflow上,几天后我在收集了很多关于这个主题的信息后回答了自己。可能也与您相关。

关于mysql - 处理大型数据库表的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/324103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com