我刚刚有了这个想法,并认为这是解决这个问题的好方法,但我问这种方法是否有一些缺点。我有一个经常查询数据库的网页,每个页面加载多达 3-5 个查询。每个查询都进行十几个(字面意思)连接,然后每个查询结果都用于另一个查询以构造 PHP 对象。不用说即使在云上加载时间也很荒谬,但它现在就是这样工作的。
我考虑将已经构建的对象存储为 JSON 或 MongoDB - BSON 格式。使用MongoDB作为这种类型的缓存引擎会是一个很好的解决方案吗?这是我认为它将如何工作的示例:
- 当用户打开页面时,如果 Mongo 中没有具有正确 ID 的数据,则会触发对 MySQL 的查询,每个返回的数据都被转换为正确构造的对象。该对象被发送到视图并转换为 JSON 并保存在 Mongo 中。
- 如果 Mongo 中有相应 ID 的数据,则将其发送到 PHP 并进行转换。
- 当 MySQL 中的某些数据更改(管理员编辑/删除内容)时,会触发删除函数,该函数也会删除 MongoDB 中已编辑/删除的对象。
它是使用 MongoDB 的好方法吗?这种方法的缺点是什么?使用 Redis 来完成这项任务会更好吗?对于项目的其他元素,我还需要 NoSQL,这就是为什么我正在考虑使用这两个元素之一而不是 memcache。
MongoDB 作为来自 MySQL 的频繁连接和查询的缓存有一些信息,但它完全无关紧要。