【问题标题】:NoSQL databases (MongoDB) versus relational databases (MySQL)NoSQL 数据库 (MongoDB) 与关系数据库 (MySQL)
【发布时间】:2017-03-19 16:56:54
【问题描述】:

我已经花费了大量时间来学习 MongoDB 作为 MEAN 堆栈的一部分(我是 MEAN 堆栈的新手),我觉得我刚刚开始掌握它的窍门。然而,最近我的工作主管(一位经验丰富的程序员)建议我学习关系数据库(可能被更多公司使用),由于我只是一名初级开发人员,因此我将他的建议铭记在心,并且会喜欢尽快向上移动。我的个人目标/项目是建立一个社交网站,其中一组用户能够搜索另一组用户(并且很可能收取会员费)。对于这样的项目,数据库是否重要?我很想通过学习一些可以在我的个人项目和专业工作中使用的东西(并且学得很好),一块石头杀死两只鸟。

我当然愿意学习不止一种语言,但我需要一个起点,所以我需要一些可以帮助我实现个人目标的东西。由于我在 JavaScript(与 Python 相对)上花费了大量时间,因此必须学习关系数据库让我很担心。坚持使用 MongoDB 有什么缺点吗?

提前致谢!

【问题讨论】:

  • 经验法则:写入 NoSQL 既快又便宜,而查询成本高;写入 SQL 很昂贵,但读取可能很便宜。
  • @Tim_Biegeleisen 我更偏向于 SQL 方面,但这是我第一次听说 NoSQL 的“昂贵查询”。这是“一般性陈述”还是您想到了一些特定的用例(例如“当您的查询很复杂/需要来自不同实体的信息来回答时”)
  • 如果您对 SQL 与 NoSQL 感兴趣,这个问题有一些很好的答案和指针 (stackoverflow.com/q/2559411/5077154)。另请注意,该问题已被关闭,主要是基于意见(恐怕这个问题是)
  • 感谢大家的反馈!非常感谢。听起来@FDavidov 在下面所说的一种方法是:我想要结构化数据还是非结构化数据?我在辅导网站上使用的例子就是我想要的。

标签: sql mongodb nosql


【解决方案1】:

Farid,作为一名初级程序员,我建议你尽可能多地学习这两种方法。

从其中一个方面获得的知识也将帮助您从另一个方面获得最大收益(因为它们都涉及数据、如何构建数据以及如何查询数据)。

此外,在日常工作中(除非您只专注于可扩展性是首要考虑的大型站点),您可能会比 NoSQL 选择更频繁地遇到 RDBMS。

这两种技术各有利弊,除非您了解双方(至少记录自己,如果不是通过直接经验),您可能会选择一种解决方案,而另一种可能更可取。

【讨论】:

  • 这里的主要问题是基于您在搜索一组用户。这将确定技术解决方案。
  • 你说得对,了解一个人将有助于理解另一个人。我才刚刚开始深入研究数据库,但我已经开始看到相似之处。我想我最大的担心是浪费时间。再说一次,我对这一切都是新手,所以也许我不应该太担心“浪费时间”。
【解决方案2】:

您需要做的第一件事是评估您将要处理的数据类型(它是结构化的、容易用表格表示的,还是更多的非结构化类型)。

如果是结构化的,RDBMS 是必经之路。

顺便说一句,据我所知,Facebook 的第一个版本是使用 MySQL(您老板所指的 DBMS 类型)实现的。

【讨论】:

  • 感谢您的反馈!诚然,我不知道我要处理什么类型的数据,这可能对我的情况没有帮助。我对这一切都很陌生,所以我仍在努力寻找方向。我知道我想要完成什么,但我不知道我需要什么工具。也许这会有所帮助:想想你有两组用户的辅导网站:辅导员和学生。每个组在您的站点上都有一个会员资料,他们应该能够相互搜索和发送消息。我不知道那是结构化数据还是非结构化数据。
  • 我建议你坐下来拿一张纸和一支铅笔。然后假设您有一个工作系统接收事件(来自用户,如您提到的发送消息),这些事件的结构可能是什么(例如,每次交换消息时您希望保留的字段列表) .一旦你为你需要的所有事件准备了这个,检查你是否识别出一个常见的和重复的模式。如果你这样做了,MySQL 就是方向。希望这可以帮助。祝你好运!!
【解决方案3】:

好吧,任何人都关心学习 SQL(并使用 JOIN),但是:
有一天,你不知道如何使用它(或理解它),所以也许最好花点时间了解一下 SQL(它是最普遍的)

如果你开发一个 REST 服务,MongoDB 很好,但如果你想做一个类似社交网络的项目,也许最好看看Graph database


也许video 可以提供帮助,是 SQL 与 NoSQL 的概述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2012-02-09
    • 2012-12-26
    • 2019-04-18
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多