MongoDB作为MySQL的频繁连接和查询的缓存

时间:2010-10-24 21:01:22

标签: mysql caching mongodb

我正在考虑做以下事情并且需要建议,如果以这种方式接近它是有意义的。基本上,因为我能够在MongoDB中执行查询,并且MongoDb在这些问题上很快就被使用了,因为数据的热点被缓存在内存中。我想在mongoDB中存储我通常会在mysql中加入的数据。虽然我使用memcached存储简单的查询结果(例如电影描述页面),但对于需要更多实时/按需查询的更大的东西,我正考虑将其存储在MongoDB中。例如,电影的观看次数以及观看者的观看次数,并对其进行分析。

希望我能清楚地解释清楚。

更多信息:

我们不想继续在每个评级等上写入我们的mysql服务器,MongoDB似乎是存储评级,电影视图等的一个很好的选择,然后能够对该数据进行处理。而Memcached数据没有持久存在且无法进行查询

谢谢, 费萨尔

3 个答案:

答案 0 :(得分:2)

单独使用内存缓存并不是使用MongoDB的好理由。任何正确配置的RDBMS都会将经常使用的数据缓存在内存中。

MySQL的哪些方面目前限制了您的表现?你的服务器有足够的RAM吗?你的磁盘足够快吗?您是否有适当配置的低延迟缓存设备?

答案 1 :(得分:0)

在您的应用程序中使用这两种解决方案没有任何问题。事实上,我正在使用mysql将用户会话存储为cookie。另外,我有另一个利用mysql的项目,但对于我的应用程序的某些部分,我将使用MongoDB。为什么?这是邪恶的,我讨厌写连接查询。将数据放入/移出mongo要容易得多,因为假设必须在mysql中进行连接查询。

为特定用户保存标签时,保存/修改/删除存储在mongodb中的标签非常谨慎。使用MySQL,我将不得不编写一个JOIN多个表的查询。对于诸如用户帐户,密码,城市,州等数据 - 我将所有内容保存到MySQL中。

答案 2 :(得分:0)

您所说的是对数据进行规范化和非规范化的想法。使用MongoDB作为规范化sql数据的非规范化数据存储是很好的。使用Mongodb作为某些类型数据的唯一数据存储也很好。只需确保系统设计中明确了真实数据的位置以及非规范化数据的位置。

标准化数据是真实的事实。非规范化数据是八卦 - 你不确定它是否是最新的。