0

我一直听说构建可扩展网站的方法之一是不使用连接。既然大多数数据都是相关的,那么您是如何做到这一点的呢?

我有限的研究产生了以下想法:

A) 如果您的数据本质上是关系型的,那么确实使用关系型数据库,即使用正确的工具来完成这项工作。

B) 维护数据的非规范化版本。

C)对于可以强制为非关系的数据,您可以使用 NOSQL。以不需要连接的方式对其进行数据架构。

D)如果您必须关联您的数据,那么应用程序层必须通过逐一获取数据集并手动关联结果来手动实现连接。

E) 由于应用层的手动连接非常慢,因此请尝试离线执行这些操作(而不是在用户等待时)。

F) 使用 Map-Reduce。

这是正确的/还有更多的答案吗?

4

2 回答 2

3

高可扩展性对此有很好的文章。查看 reddit 以了解他们如何处理连接:http ://highscalability.com/blog/2010/5/17/7-lessons-learned-while-building-reddit-to-270-million-page.html

然后已经有一个stackoverflow问题,其中包含类似信息的答案中的一堆链接: 编写可扩展网站的技术

于 2011-02-25T13:41:29.317 回答
0

尽可能多地缓存,即当您有昂贵的查询(有或没有连接)尝试缓存查询结果而不是再次执行查询等。为了使整个站点快速,缓存对象在可能的最高层,即尝试缓存整个页面,如果这不起作用,请尝试缓存页面片段,然后缓存提供数据以填充页面的数据对象等。

警告:老话“计算机科学中只有两件难事——缓存失效和命名”是有道理的,所以要小心你在缓存中放了什么以及放多长时间。

于 2011-03-02T14:53:29.747 回答