2010-08-30 139 views
1

我想要通过Web界面向用户和搜索引擎提供大量(数千兆字节值)的档案数据。大部分数据很少会改变,所以我正在讨论存储和传输数据的最佳方式。大量的静态数据填充网页 - 存储在数据库中,或静态?

我想确保数据快速高效地加载,以便用户可以轻松查看并通过搜索引擎对其进行索引,而不会使服务器超载。

将数据存储到MySQL数据库并动态生成显示页面,或预先填充数据库中的所有显示页面并将它们存储为静态文本/ html会更节省空间和资源(重新生成如果需要,每几周打印一页)?

+0

它是什么类型的数据?文件?文本文件?数字或文本数据?表? – 2010-08-30 18:33:01

+0

相关文本和数字数据的主要小部分 – MarathonStudios 2010-08-30 18:45:47

回答

2

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

该地区有几种强大的开源解决方案。仅举一例,Apache Solr看起来可能对你有用:

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

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

1

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

一个简单的“包含”应该把所有的数据放在你的网页上。通过这种方式,您还可以避免重复您希望数据存在的所有页面上的数据。

+0

这可能是可能的,数据将被“歪曲”并包含在不同页面的部分中 - 预分块成文本文件应使其包括在它所需要的页面上相当容易。我唯一的担心是管理几百个文本文件会比管理一个大的关系数据库更困难。 – MarathonStudios 2010-08-30 18:38:16

+0

如果您不想在所有这些数据中搜索内容,最好将它们存储在文件中。 在数据库中存储文件名/文件路径几乎是可选的......取决于你真正需要构建的东西。 顺便说一句,一旦你建立了几百个文本文件,你将不必再为他们烦扰。 – jrharshath 2010-08-30 19:26:47

0

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

0

我认为这取决于您将拥有的“显示页面”的数量。如果显示的页面数量相对较少,那么请继续。不过,我会假设将会显示大量的页面(可能远到很多实际预先计算)。

我想你会开始通过将你的一些表格解除规范化为你感兴趣的视图。这样你就可以避免必须加入到所有地方。之后,如果性能仍然是一个问题,某种缓存机制可能适用于更频繁使用的页面。 (Web缓存等)当然,我认为你的数据库会自动做一些缓存。

这是一个折衷和高度依赖于数据。

0

如果你的主要目标是被谷歌或其他人索引。你不需要数据库。把你所有的静态数据放在页面中,并在web服务器的根目录下建立sitemap.xml以便被web机器人索引...