当前位置:  开发笔记 > 编程语言 > 正文

数据库分片和Rails

如何解决《数据库分片和Rails》经验,为你挑选了3个好方法。

在Rails中处理分片数据库的最佳方法是什么?是应该在应用程序层,活动记录层,数据库驱动程序层,代理层或其他方面处理分片?各自的优点和缺点是什么?



1> John Topley..:

FiveRuns有一个名为DataFabric的gem ,它可以进行应用程序级分片和主/从复制.可能值得一试.



2> Wayne Kao..:

我假设有分片我们谈的是水平分区而不是垂直分区(这里是维基百科上的差异).

首先,在考虑水平分区之前,尽可能地拉伸垂直分区.在Rails中很容易让不同的模型指向不同的机器,对于大多数Rails站点,这将带给你足够的空间.

对于水平分区,在理想的世界中,这将在Rails 中的应用层处理.虽然它并不难,但它在Rails中并不是微不足道的,当你需要它的时候,通常你的应用程序已经超出了可行的程度,因为你的ActiveRecord调用遍布整个地方.并且没有人,开发人员或管理人员喜欢在您需要之前进行操作,因为每个人都希望处理用户现在将使用的功能,而不是在流量爆炸后可能无法发挥多年的分区.

ActiveRecord层 ......从我能看到的内容来看并不容易.需要大量的猴子修补到Rails内部.

在Spock,我们最终使用自定义MySQL代理处理它,并在SourceForge上将其作为Spock Proxy开源.ActiveRecord认为它正在与一台MySQL数据库机器进行通信,当它与代理进行通信时,代理会与一个或多个MySQL数据库进行通信,对结果进行合并/排序,并将它们返回给ActiveRecord.只需对Rails代码进行一些更改即可.请查看Spock Proxy SourceForge页面,了解更多详细信息以及我们走这条路线的原因.



3> salt.racer..:

对于那些喜欢我没有听说过分片的人:

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

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