首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库分片和Rails

数据库分片和Rails
EN

Stack Overflow用户
提问于 2008-09-04 16:40:10
回答 9查看 10.3K关注 0票数 11

在Rails中处理分片数据库的最好方法是什么?是否应该在应用层、活动记录层、数据库驱动器层、代理层或其他层处理分片?每种方法的优缺点是什么?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-09-07 08:47:31

FiveRuns有一个名为DataFabric的gem,它执行应用程序级别的分片和主/从复制。这可能值得一查。

票数 13
EN

Stack Overflow用户

发布于 2008-09-11 01:56:42

我假设对于分片,我们谈论的是水平分区而不是垂直分区(here are the differences on Wikipedia

首先,在考虑水平分区之前,尽可能地扩展垂直分区。在Rails中,让不同的模型指向不同的机器是很容易的,对于大多数Rails站点来说,这已经足够了。

对于水平分区,在理想情况下,这将在Rails中的应用程序层中处理。但是,虽然这并不难,但在Rails中并不是微不足道的,当您需要它的时候,您的应用程序通常已经超出了可行的范围,因为您的ActiveRecord调用随处可见。没有人,开发人员或管理人员,喜欢在你需要它之前工作,因为每个人都更愿意在用户现在使用的功能上工作,而不是在你的流量爆炸后几年内不会发挥作用的分区。

ActiveRecord layer...据我所知并不容易。将需要大量的猴子补丁到Rails内部。

Spock,我们最终使用定制的MySQL proxy来处理这个问题,并将其作为Spock Proxy在SourceForge上开源。ActiveRecord认为它是在与一台MySQL数据库机器对话,而实际上它是在与代理对话,然后代理与一个或多个MySQL数据库对话,合并/排序结果,并将结果返回给ActiveRecord。只需要对Rails代码进行少量更改。请查看Spock代理SourceForge页面,了解更多详细信息以及我们选择此路线的原因。

票数 9
EN

Stack Overflow用户

发布于 2008-09-04 19:31:47

对于像我这样没有听说过分片的人:

http://highscalability.com/unorthodox-approach-database-design-coming-shard

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档