在创建Saas产品时,数据库是伸缩方面最大的问题。
根据我的研究,Django似乎提供了一种内置的更健壮的方式来对数据库进行垂直分区。
Rails有一些你可以使用的gem,但它不是Rails框架附带的东西,你真的要受发布它的开发人员的摆布(可能不会让它保持最新等等)。
在垂直分区方面,我的观察结果是否正确,即Django在这一领域更健壮?
使用django的多数据库:http://docs.djangoproject.com/en/dev/topics/db/multi-db/
发布于 2010-11-13 00:48:22
你可以在Rails中创建多个数据库,如果你愿意,每个模型都可以有一个单独的连接,这是核心功能的一部分,但这不是一种非常有效的扩展方式。通常,通过调整设置、集群、复制或在应用程序本身中应用更严格的缓存,将精力集中在调优数据库堆栈上要好得多。
跨数据库拆分表真的不会给你带来多少可伸缩性。一种更现代的方法是分片,其中每个表被分成单独的实例,尽管沿着这条路走下去需要大量的准备工作和对数据库体系结构的非常扎实的理解。由于您可以控制每个分片的大小,因此您可以在这方面进行无限制的扩展。
请记住,Rails附带了ActiveRecord作为标准的对象关系映射器,但是还有另外两个提供不同功能的生产就绪包:DataMapper和Sequel
根据我开发大型应用程序的经验,只有当您使用调优不佳的配置、动力不足的设备或表结构没有充分索引或非规范化时,您才会发现数据库成为瓶颈。这在所有数据库支持的应用程序中都是常见的,而不是Rails或Django所特有的,所以您选择的平台在这里实际上并不重要。
Rails应用程序中的大部分性能收益来自于适当的数据反规范化,使用memcache支持的Rails.cache,以及从基于模型的加载切换到出于性能原因而需要的直接查询。Rails可以在单个数据库实例上很好地扩展,在技术方面没有什么特别之处,只需充分应用基本的优化原则即可。
https://stackoverflow.com/questions/4166730
复制相似问题