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

时间:2009-08-11 19:08:26

标签: database caching

我正在开展一个涉及来自不同网站的数据挖掘的项目,一个很好的类比是收集有关eBay拍卖的统计数据。然而,除了存储密钥数据之外,我确实需要确保访问原始页面,并且在某些网站上原始页面可能不是永久性的 - 例如,如果eBay在完成后删除了拍卖页面。理想情况下,我希望有一个类似于Google如何缓存页面的系统,例如在我自己的服务器上存储页面的副本。但是我被告知可能会出现并发症,并且对我的数据库所需的资源产生很大的影响。

3 个答案:

答案 0 :(得分:3)

即使您缓存的每个页面只有5kb,这仍然会随着时间的推移而增加 - 缓存200页,并且您在数据库中使用了额外的1mb;缓存20,000页,你已经使用了100mb - 许多页面(当你考虑标记+内容时)将大于5kb。

另一种选择是将页面保存到磁盘作为目录中的(可能是压缩的)文件,然后简单地引用数据库中保存的文件名 - 如果您不需要通过查询搜索页面代码的内容在初始数据挖掘之后,这种方法可以减少数据库和查询结果的大小,同时仍然存储整个页面。

答案 1 :(得分:0)

我会回应戴维所说的话,但也许还考虑如果你在同一时间内反复索引同一页面,那么只存储这些变化。 将文本存储为varbinary也会节省空间。 就搜索而言,您可以在索引页面的并行中设置Lucene。

答案 2 :(得分:0)

保存的页面不包含服务器端CSS& JS文件,这意味着当从缓存数据库/文件系统提供服务时,它可能会被渲染得很糟糕?

页面上的照片或图片怎么样?

我认为页面保存的5Kb是低的,我想知道保存包含JS ... AJAX页面的页面。我发现很难准确地想象会发生什么,但也许你只需要看到页面上的文字?

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