填充网页的大量静态数据 - 存储在数据库中,还是静态的?

时间:2010-08-30 18:19:35

标签: mysql database caching search-engine

我有大量(几千兆字节)的档案数据,我希望通过网络界面向用户和搜索引擎提供这些数据。大多数数据很少会改变,因此我在讨论存储和传送数据的最佳方式。

我希望确保快速有效地加载数据,以便用户可以轻松查看并搜索引擎编制索引,而不会使我的服务器过载。

将数据存储在MySQL数据库中并动态生成显示页面,或者从数据库预先填充所有显示页面并将它们存储为静态文本/ html(重新生成页面),是否可以节省更多空间和资源?如有必要,每隔几周一次)?

5 个答案:

答案 0 :(得分:2)

您主要关心的是搜索和浏览数据。您可能不希望从头开始构建该功能,但使用一个或多个现有产品。因此,我会删除“文件或数据库”的问题,并将其替换为“我将使用什么服务器/浏览/搜索系统?”。

该地区有几种强大的开源解决方案。仅作为一个示例,Apache Solr看起来对您有用:

  

Solr是Apache Lucene项目中流行的,快速开源的企业搜索平台。其主要功能包括强大的全文搜索,点击突出显示,分面搜索,动态聚类,数据库集成和丰富的文档(例如,Word,PDF)处理。 Solr具有高度可扩展性,可提供分布式搜索和索引复制,并支持世界上许多最大的互联网站点的搜索和导航功能。

Sphinx是另一种流行的开源系统,旨在搜索数据库。

答案 1 :(得分:1)

折衷方案是将数据作为静态文件存储在服务器上,并将路径存储到数据库中的文件中。

简单的“包含”应该将所有数据放在您的网页上。这样,您还可以避免在希望数据存在的所有页面上复制数据。

答案 2 :(得分:0)

我希望你不是把所有数据放在一个页面上。如果你这样做,你将会打乱人们的网络浏览器。如果数据很大且变化不大,我会坚持使用静态页面,可能还有程序在数据发生变化时重新生成它们。这就是Movable Type博客引擎所采用的方法。如果用于生成页面的程序编写正确,则可以快速轻松地将其更改为按需动态生成页面的程序。

答案 3 :(得分:0)

我认为这将取决于您将拥有的“显示页面”的数量。如果要显示的页面数量相对较少,那么就开始吧。但是,我将假设将要显示大量页面(实际上预计算可能很多)。

我认为你会先将你的一些表格去标准化为你感兴趣的视图。这样你就可以避免在整个地方加入。之后,如果性能仍然是一个问题,某种缓存机制可能对更频繁使用的页面有利。 (Web缓存等)当然我认为你的数据库会自动进行一些自己的缓存。

这完全取决于数据。

答案 4 :(得分:0)

如果您的主要目标是谷歌或其他人被编入索引。您不需要数据库。将所有静态数据放在页面中并在Web服务器的根目录下构建sitemap.xml,以便通过Web机器人索引...