mysql - 在 MEAN 结构化框架中使用 MySQL 代替 MondoDB 以及 Node.js

标签 mysql mongodb mean-stack

对于单页应用程序或考虑到应用程序的速度,我们通常会切换到 MEAN。但我的问题是,当我使用 Mysql 作为数据库而不是像 MongoDB 这样的文档数据库时,我能获得相同的速度和性能吗?

考虑到应用程序中不需要批量插入或更新操作。

最佳答案

基本上,Mysql 是 RDMBS,它具有强大的表架构,而 Mongodb 是一个基于集合的数据库,没有强大的架构(NoSQL)。

就速度而言,在不查看模式的情况下,很难完全判断 mysql 更好还是直接 mongodb 更好。但是,如果索引正确,则可以针对其中任何一个来优化性能。

但是要在这两个之间进行选择,可能需要检查以下参数:

  • 如果您的应用程序模式已定义(mysql 很好)或其绑定(bind)结构非常松散并且可以从文档(记录)更改为文档(Mongodb 很好)?
  • 您的应用程序是否分为不同的表(例如映射表、数据透视表)以具有许多主外键关系?那么mysqls是一个不错的选择,如果没有太多的joins Mongodb也是不错的。 Mongodb 可用于连接,但 mysql 中的简单连接查询可能是 mongodb 聚合中的长嵌套 $lookup json 查询。
  • Mongodb 查询语法非常直观,更倾向于类似 javascript 的语法。因此,从开发角度来说,它很容易管理和返工。
  • 如果您正在进行文本搜索,那么 mongodb 有一套很好的 $text 索引,其中包含标记化和分析器。在mysql中实现起来比较困难。
  • mongodb 中的数据局部性不如 mysql 可靠。
  • Mongodb 具有自动分片功能,如其文档中所述,以实现高可用性,您需要在 mysql 中自行配置。
  • 如果您想使用 mongo 但仍希望使用模型辅助函数进行查询,像 mongoose 这样的节点包还会为您提供类似 ORM 的模型来查询 mongodb。

关于mysql - 在 MEAN 结构化框架中使用 MySQL 代替 MondoDB 以及 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43818657/

相关文章:

mysql - 关于 MySQL 表上的垃圾收集/自动删除的问题

mysql - 如果其他行包含其中包含 1 的 ID,是否可以在一列 ID 中搜索 1?

performance - Mongodb聚合框架比map/reduce更快吗?

timeout - 504 运行时超时 'yo angular-fullstack:openshift'

node.js - 记录Node的stdout和stderr

mysql - 如何在 MySQL 中为数据库添加别名?

mysql - 使用 KnexJS 查询 X 个表?

mongodb - 在逻辑分析图表中连接空值

node.js - Sails JS 模型 Rest API

angularjs - 当多个路径匹配时,Express 如何知道使用哪个 Router 路径?