当前位置:  开发笔记 > 后端 > 正文

处理大型数据库表的策略

如何解决《处理大型数据库表的策略》经验,为你挑选了1个好方法。

我正在寻找构建一个Rails应用程序,它将拥有一些超过5亿行的超大表.为了让事情变得活泼,我目前正在研究如何将大表拆分为更易于管理的块.我看到,从MySQL 5.1开始,有一个分区选项,这是一个可能的选项,但我不喜欢确定分区的列必须是表中主键的一部分的方式.

我真正想做的是根据写入的值拆分AR模型写入的表,但据我所知,没有办法做到这一点 - 是否有人对如何实现这一点有任何建议或任何替代策略?

谢谢

Arfon



1> Eran Galperi..:

MySQL中的分区列不限于主键.实际上,分区列根本不必是一个键(尽管将透明地创建一个分区列).您可以按RANGE,HASH,KEY和LIST进行分区(仅与RANGE类似,它是一组离散值).阅读MySQL手册,了解分区类型的概述.

还有其他解决方案,例如HScale - 一种中间件插件,可根据特定条件透明地对表进行分区.HiveDB是一个用于MySQL水平分区的开源框架.

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

实际上我在前一段时间就堆栈溢出问题提出了一个关于MySQL缩放的相关问题,几天后我收集了大量有关该主题的信息后,我最终回答了自己的问题.也可能与你相关.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有