我正在制作一个新版本的旧静态网站,成长为一个50+静态页面。
所以我用旧的内容制作了一个JSON文件,这样新网站就可以更多的CMS (普通页面的模板),这样后端就会变得更干燥。
我想知道我是否可以从JSON中将该内容提供给我的视图,或者是否应该将其放在MySQL数据库中?
我使用的是Node.js,在Node中,我可以将该JSON文件存储在内存中,这样在用户请求数据时就不会进行文件读取。
有正确的做法吗?在为缓存的JSON文件提供服务还是通过MySQL提供服务时,它们之间是否存在性能差异?
所讨论的文件大约为400 is。如果文件大小与一种技术与另一种技术的选择相关?
发布于 2016-01-03 03:01:22
通常,数据库用于服务频繁变化的动态内容,记录具有一对多或多到多的关系,您需要根据各种标准查询数据。
在您所描述的情况下,您似乎可以接受缓存在服务器内存中的JSON文件。只要确保在文件内容更改时更新缓存,即重新启动服务器、通过http请求触发缓存更新或在文件系统级别监视文件即可。
除此之外,您还应该考虑在服务器和浏览器上缓存静态文件,以获得更好的性能。
app.use "/bower",express.static("bower-components",{maxAge: 31536000})
这里是一篇关于浏览器缓存的好文章。
发布于 2015-12-27 09:14:53
为什么要增加另一层间接?只需直接从JSON提供视图即可。
发布于 2015-12-30 11:39:29
如果您已经将视图存储为JSON并使用Node,则可能值得考虑使用平均堆栈(MongoDB、Express、MongoDB、Node):
这样,您就可以在JS中对整个过程进行编码,包括MongoDB中的文档存储。我应该指出我自己没有用过刻薄。
MySQL可以存储和服务JSON没有问题,但是由于它不解析JSON,所以它非常不灵活,除非您将它拆分成组件,并且文档中的索引几乎是不可能的。
您是否“应该”这样做完全取决于您的个人项目,以及它是否是/如何它有可能发展。
当您正在实现该网站的新版本(使用CMS)时,这意味着它是实时的,并且会受到增长或变化的影响,也许在MySQL中存储JSON会为将来带来问题。如果它真的只是一个文件,那么从文件系统中提取并将其缓存到RAM中可能会更容易。
以前,我在MySQL中为我们的项目存储了JSON,除了少数几个小众案例之外,我最终将组件数据分开。
https://stackoverflow.com/questions/34461314
复制相似问题