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