- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在构建与 Blogfarm 类似的东西,但我遇到了一个小障碍。我使用 Wordpress 多用户数据库作为引用,并注意到为每个正在创建的博客创建了一个唯一的表。
因此,如果农场将拥有,比方说,'x' 百万用户(只是一个奇怪的想法),那么理想情况下,数据库将拥有 'x' 万个表,假设每个博客都有一个用户。
Wordpress MU 使用的是不是一个好的数据库设计?如果是,它对拥有这么多“x”万个表的数据库性能有多大影响?
由于我刚刚开始编写代码,所以我可以自由选择我喜欢的任何数据库。目前我正在结合使用 PostgreSQL 和 Ruby on Rails。您认为 NoSQL 数据库(如 MongodB)在这种情况下会有用吗?如果不是,为什么/为什么不?我还没有看到任何博客平台在 NoSQL 数据库上运行。
Blogger、Tumblr 或 Squarespace 等大公司是如何做到的?
非常感谢任何帮助,谢谢。
引用资料:
最佳答案
这很可能已经足够好了。我的猜测是它主要有缓存问题。如果您在同一台服务器上有数千个博客,并且每个博客被命中的可能性相同,那么缓存将是一场噩梦,并且可能大多数查询都需要命中硬盘(冷缓存命中)。但是,如果大多数查询访问相同的博客,并因此访问相同的表,缓存就足够了。
我的诚实建议如下。 做最简单的事情,暂时忘掉可扩展性问题。99.999% 的网站没有提供足够的流量来保证任何特定问题,而 0.001% 的网站将拥有实际的资源重写任何代码库以使其可扩展。在这种情况下,请使用以下经验法则:
我猜他们是通过某种形式的 sharding 来做到这一点的.换句话说,是的,您会有数百万个表分布在数千台服务器上。
这里的要点是,这种架构选择是一种权衡。如果您的网站流量很大,您将需要更多的数据库服务器,这样您就可以 scale horizontally .另一方面,如果您有很多网站但流量很少,则可能不需要扩展那么多。
关于博客场的数据库设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021733/
我是一名优秀的程序员,十分优秀!