我正在编写一个类似reddit的网站。
用户可以显示其所选类别中的项目。
为此,我正在查询他订阅的类别和项目的 JOIN。
硬核查询
第一种解决方案:将数据存储在磁盘上的"categories_1-2-4-7-10.json"中,并将其提供给浏览相同类别的用户。
缺点:占用磁盘空间,负载沉重。
我正在考虑一个新的解决方案:视图。但我真的不知道它们是如何工作的,它们是否经常再生到足以成为服务器上的重载?
视图将允许我查询已加入的数据
进一步 :我只是为首页项目做一个视图。我不需要优化以后的页面,因为它们的访问频率不高。
将
内容存储到磁盘,然后为站点加载它们是一个坏主意。与内存操作相比,磁盘操作非常慢。
您仍然可以存储 JSON 文档,但请考虑将它们存储在缓存层中。
像Redis这样的东西,这是这些天的新热门(http://redis.io/)或Couchbase(http://www.couchbase.com/)
将所有内容存储在内存中,网站会快得多。
至于多久重新生成一次您的观点...一个好主意是给它们一个过期时间。阅读一般情况下如何与缓存配合使用。您可以将类别视图设置为在缓存中存在大约 1 分钟。一分钟后,该项离开内存,您进行数据库查询以重新放入较新版本。冲洗并重复。