在数据库中缓存页面的最佳方法是什么?

3
我正在从各个网站进行数据挖掘的项目中工作,一个好的比喻是收集eBay拍卖的统计数据。然而,除了存储关键数据外,我真的需要确保能够访问原始页面,在某些网站上,原始页面可能不是永久性的 - 就像eBay在拍卖结束后删除拍卖页面一样。我希望有一个类似于Google缓存页面的系统,例如在自己的服务器上存储页面的副本。然而,我已经被告知可能会有复杂性以及对我的数据库所需资源的巨大影响。
3个回答

3
即使您缓存的每个页面只有5kb,随着时间的推移,这也会累积 - 缓存200个页面,您的DB就增加了1mb;缓存20,000个页面,您使用了100mb - 而且许多页面(考虑到标记+内容)将大于5kb。另一种选择是将页面保存为目录中的文件(可能经过压缩),然后在数据库中简单地引用保存的文件名 - 如果您不需要在初始数据挖掘后通过查询搜索页面代码的内容,则此方法可以减小数据库和查询结果的大小,同时仍存储完整的页面。

0
我想强调一下Dav所说的,如果你在不断地对同一个页面进行索引,也许可以考虑只保存更改部分。此外,将文本存储为varbinary类型可以节省很多空间。至于搜索,你可以设置Lucene并行索引页面。

0

保存的页面不包括服务器端的CSS和JS文件,这会是一个问题吗?这意味着从缓存数据库/文件系统提供服务时,它可能会被渲染得很糟糕。

那么页面上的照片或图像呢?

我认为5Kb对于页面保存来说太低了,我想知道是否可以保存包含JS的页面...特别是AJAX页面。我很难想象会发生什么,但也许你只需要看到页面上的文本?

有人知道Google的缓存是如何工作的吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接