一起使用MySQL和MongoDB

我以前从未使用过NoSQL,通常我编写的应用程序需要关联。但是,我遇到了一些我不知道如何去做的事情。到目前为止,我仅在设计数据库。现在,我的主要逻辑是在MySQL数据库中。我拥有将通过CDN托管的静态内容。但是,我拥有动态内容,但这些内容将被更新,但很少更新,但几乎可以在每个请求中读取,例如电话号码,电子邮件地址,地址,其他信息。它们不会用于搜索,但是此数据是非结构化的。一个用户可以有多个电子邮件地址,电话号码和地址。并且多个表将需要它们。因此,在这种情况下使用关系数据库无法满足我的需求(我不想为此创建实体-属性-值表),并且因为我知道它不会 t影响逻辑-它仅用作“元数据”,我想将其保留为JSON格式。在使用Google一段时间后,我发现MongoDB使用JSON存储“文档”,这听起来是完美的解决方案。但是,我对此有一个问题。如何将这些数据库连接在一起?我是否只需要在创建/更新时为文档添加user_id或organization_id“列” /字段,并执行“选择”查询(在MongoDB中是等效的)以接收元数据?还是有其他方法?如何将这些数据库连接在一起?我是否只需要在创建/更新时为文档添加user_id或organization_id“列” /字段,并执行“选择”查询(在MongoDB中是等效的)以接收元数据?还是有其他方法?如何将这些数据库连接在一起?我是否只需要在创建/更新时为文档添加user_id或organization_id“列” /字段,并执行“选择”查询(在MongoDB中是等效的)以接收元数据?还是有其他方法?

马克·布拉姆尼克

我将在这里提出我的意见。您在此处尝试执行的操作称为“多语言持久性”。如果您介绍mongo,将有2种用于存储数据的体系结构,它们的强度,api,设计各不相同,但要付出一定的代价。

Mongo DB是一个很棒的产品,我自己曾成功使用它,但是您必须了解它并没有提供您希望从RDBMS(如MySQL)获得的所有功能。例如,它完全缺乏交易。而且,如果您同时存储在MySQL和Mongo中,则必须自己关心数据的完整性(如果作为逻辑事务的一部分,mysql事务成功,但是mongo无法存储数据,会发生什么情况)。我相信您已明白我的意思。

是的,mongo确实允许通过各种JSON参数进行查询,实际上,它具有整个查询语言,在某种程度上类似于SQL,但是它并不是真正的“关系”查询引擎,因为mongo不是关系数据库,因此您不必例如,没有JOIN。但是您自己说过,您不会按这些字段进行搜索,所以我有点不明白使用mongo有什么好处。也许这仅与术语有关,但是我对此说法有些困惑。

mongo真正闪耀的地方是当您拥有大量数据(毕竟它是大数据产品)时,您会拥有有趣的内容,例如副本集和分片,但问题是您是否真的需要它?您真的有“大数据”-确实要存储大量对象吗?

作为替代方案,我认为也许您可以使用文本列按原样存储JSON。我的意思是,您可能有一列存储JSON。您甚至有时将“ JSON”类型作为数据库中的本机类型,我不确定MySQL是否支持它。在这种情况下,您甚至可以对这些json进行一些操作(如追加,部分更新等)。

当然选择是您的选择,我要说的是,您应该考虑使用2个持久性引擎时是否会获得更多好处,还是会使您的项目更加复杂。

希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章