SQL 视图和 JSON 磁盘缓存


SQL views and JSON disk caching

我正在编写一个类似reddit的网站

用户可以显示其所选类别中的项目。

为此,我正在查询他订阅的类别和项目的 JOIN

硬核查询

第一种解决方案:将数据存储在磁盘上的"categories_1-2-4-7-10.json"中,并将其提供给浏览相同类别的用户。

缺点:占用磁盘空间,负载沉重

我正在考虑一个新的解决方案:视图。但我真的不知道它们是如何工作的,它们是否经常再生到足以成为服务器上的重载?

视图将允许我查询已加入的数据

进一步 :我只是为首页项目做一个视图。我不需要优化以后的页面,因为它们的访问频率不高。

内容存储到磁盘,然后为站点加载它们是一个坏主意。与内存操作相比,磁盘操作非常慢。

您仍然可以存储 JSON 文档,但请考虑将它们存储在缓存层中。

像Redis这样的东西,这是这些天的新热门(http://redis.io/)或Couchbase(http://www.couchbase.com/)

将所有内容存储在内存中,网站会快得多。

至于多久重新生成一次您的观点...一个好主意是给它们一个过期时间。阅读一般情况下如何与缓存配合使用。您可以将类别视图设置为在缓存中存在大约 1 分钟。一分钟后,该项离开内存,您进行数据库查询以重新放入较新版本。冲洗并重复。