gpt4 book ai didi

mysql - 组合 mysql mongodb

转载 作者:行者123 更新时间:2023-11-29 08:59:46 25 4
gpt4 key购买 nike

我正在构建一个需要可扩展的 Web 应用程序。简而言之:

我们有用户,用户有 friend ,所以他们有一个 friend 列表。用户可以创建消息,来自 friend 的消息会显示在主页上,每条消息都链接到一个位置,并且这些消息可以按日期过滤,例如我想显示昨天发布的所有 friend 的消息,或者显示来自位置 X 的所有消息。

我现在正在 MongoDb 中完全构建应用程序,但是我遇到了麻烦。例如:

  • 在主页上,我们获取了用户好友的消息列表,我们使用没问题:

$db->messages->find(array('users._id' => array('$in' => $userFriendListGoesHere)));

然后我们就得到了消息,但是在那之后,每条消息都有一个位置,所以我必须循环遍历所有消息,并从另一个集合中获取位置,并且多个用户也可以绑定(bind)到一条消息,所以我们还必须从另一个集合中获取所有用户数据,在MySql中只是一个连接查询,在MongoDb 2循环中,这是我的第一个问题:这是一个问题吗?这是否需要大量资源,循环?

所以我的想法是与 MySql 和 MongoDb 分开,我使用 MongoDb 来存储所有位置(因为它超过 350.000+ 位置并使用经纬度计算),并使用 MySql 来存储消息、用户和用户的 friend ,所以第二个问题,你能帮助我做出决定吗?我应该继续使用带有循环的 MongoDb 吗?或者使用组合?

感谢您的阅读和您的时间。

最佳答案

.. in MySql simply a join query, in MongoDb 2 loops, and this is my first question: is this a problem?

这是 MongoDB 类(class)的标准,事实上,这是 MongoDB 的核心权衡。

MongoDB 基于连接不可扩展的原则。所以它没有连接,让你“自己动手”。 Morphia(for Java)等一些库提供了用于加载引用的内置逻辑。

PHP 有 Doctrine project ,这应该有助于解决其中的一些问题。

Does this require alot of resources, the looping?

有点?这实际上取决于实现。

这显然会涉及到与数据库的大量来回操作,但它的网络流量可能比 SQL 版本要少。您将需要内存空间来存储所有返回的数据。但同样,这与 SQL 并没有太大不同。

实际上,您需要就如何实现以及谁在内存中保存什么进行权衡。

关于mysql - 组合 mysql mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8991871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com