何时使用 MongoDB [关闭]

2024-02-26

我正在编写一个不一定需要的应用程序扩展能力因为它一开始不会收集大量数据。 (但是,如果我幸运的话,我可能会走上这条路。)

我将在同一个机器上运行我的网络服务器和数据库(目前)。

话虽这么说,我正在寻找性能和效率。

我的应用程序的主要部分将是加载博客文章。使用 RDBMS (MySQL),我将进行 6 个查询(其中 2 个查询是联接),只是为了加载单个博客文章页面。

select blog
select blog_album
select blog_tags
select blog_notes
select blog_comments (join with users)
select blog_author_participants (join with users)

然而,随着MongoDB http://en.wikipedia.org/wiki/MongoDB我可以将 6 个表反规范化并扁平化为 2 个表/集合,并将查询最小化为可能只有一个 1 查询,

users
blogs
    ->blog_album
    ->blog_tags        
    ->blog_notes
    ->blog_comments
    ->blog_author_participants

现在,采用 MongoDB 模式,将会存在一些数据冗余。然而,硬盘空间比 CPU/服务器便宜。

1.) 这是使用 MongoDB 的好场景吗?

2.) 当扩展到单个服务器之外时,您是否只使用 MongoDB 才能获得性能提升?

3.) 使用 MongoDB 是否存在任何持久性风险?我听说执行插入时可能会丢失数据 - 因为插入首先写入内存,然后写入数据库。

4.) 这会阻止我在生产中使用 MongoDB 吗?


当您有与其优势相匹配的用例时,您会使用 MongoDB。

您需要无模式文档存储吗?不,你有一个稳定的架构。

需要自动分片吗?不,您没有非常大的数据需求或水平扩展硬件的预算。

您需要map/reduce数据处理吗?不是为了像博客这样的东西。

那你为什么还要考虑呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时使用 MongoDB [关闭] 的相关文章

  • 如何为 MySQL 和 Postgres 编写不区分大小写的查询?

    我在本地运行 MySQL 数据库进行开发 但部署到使用 Postgres 的 Heroku Heroku 处理几乎所有事情 但我不区分大小写的 Like 语句变得区分大小写 我可以使用 iLike 语句 但我的本地 MySQL 数据库无法处
  • 在 ASP.NET MVC 中使用 MySQL 的 AccountController

    在 Visual Studio 中创建默认的 ASP NET MVC 项目会设置一个可以在其中注册用户的基本项目 我将如何继续更改它以使用 MySQL 服务器而不是 SQLServer 现在可以使用了 安装最新的 Connector NET
  • 如何找到 Oracle 数据库的 URL?

    如何找到 Oracle 数据库的 URL 和端口 Example jdbc oracle thin host port dbName 用户名 密码 是否有我可以查看的 SQL 命令或日志 配置文件 对于甲骨文来说 有一个tnsnames o
  • MySQL获取最后10条记录中的第一条记录

    在Mysql中 我试图获取最后10条记录中最旧的记录 为了得到最后 10 个我会简单地做SELECT FROM table ORDER BY id DESC LIMIT 10 为了获得最旧的 我只需使用 ASC 顺序 我需要首先按 DESC
  • 使用另一个表中的数据查找并替换 MySQL 中的字符串

    我有两个 MySQL 表 我想使用另一个表中的数据查找和替换一个表中的文本字符串 Table texts messages thx guys i think u r great thx again u rock Table dictiona
  • PHP:使用输入和输出参数(不是“INOUT”)调用 MySQL 存储过程

    我想从 PHP 调用 MySQL 中的存储过程 该过程需要输入and输出参数 not INOUT 参数 举一个简单的例子 假设我在 MySQL 中有以下存储过程 DELIMITER DROP PROCEDURE IF EXISTS test
  • 如何在 Windows 上安装 PHP 的 PDO 驱动程序?

    我在 Windows 服务器上安装了 Apache PHP 5 6 和 MySQL 5 7 在 php ini 中 我启用了以下内容 extension php mysql dll extension php mysqli dll exte
  • 阻止 Mongoose 为子文档数组项创建 _id 属性

    如果您有子文档数组 Mongoose 会自动为每个子文档创建 id 例子 id mainId subDocArray id unwantedId field value id unwantedId field value 有没有办法告诉 M
  • MongoDB 如何选择候选计划

    我的应用程序中的查询速度很慢 创建两个索引后 它在本地数据库中使用它们以获得更好的性能 但是当我部署在生产数据库上时 它仍然使用原始索引 下面是我所做的 集合中的属性tasks team id project id created by a
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • 是否可以自动化 SQL Server 2008 分析器?

    有一个post https stackoverflow com questions 488020 what is your most useful sql trick to avoid writing more code关于有用的 SQL
  • 自动将所有mysql表转储到单独的文件中?

    我想将每个 mysql 表转储到单独的文件中 手册指出其语法是 mysqldump options db name tbl name 这表明您事先知道表名称 我现在可以设置知道每个表名称的脚本 但是假设我在路上添加了一个新表并且忘记更新转储
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • MongoDB 嵌套数组查询

    我问这个作为评论another https stackoverflow com questions 5250652 query a nested array in mongodb问题 还发了一个question https groups g
  • PDO fetch() 失败时会抛出异常吗?

    有没有方法PDO语句 fetch http php net manual en pdostatement fetch php如果 PDO 错误报告系统设置为抛出异常 则在失败时抛出异常 例如 如果我设置 PDO ATTR ERRMODE g
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • Spark SQL/Hive 查询通过 Join 永远持续下去

    所以我正在做一些应该很简单的事情 但显然它不在 Spark SQL 中 如果我在 MySQL 中运行以下查询 查询将在不到一秒的时间内完成 SELECT ua address id FROM user u inner join user a
  • 选择MySql表数据放入数组中

    我尝试从 mysql 捕获数据并将它们全部放入数组中 认为 users table id name code 1 gorge 2132 2 flix ksd02 3 jasmen skaod2 sql mysql query select
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • RMySQL fetch - 找不到继承的方法

    使用 RMySQL 我想将数据从数据库加载到 R 中的数据帧中 为此 我使用以下代码 R连接数据库 con lt dbConnect MySQL user root password password dbname prediction h

随机推荐

  • 我应该如何 scipy.optimize 具有边界的多元且不可微的函数?

    我遇到了以下优化问题 目标函数是一个多变量且不可微的函数 它将标量列表作为参数并返回标量 它是不可微的 因为函数内的计算基于 pandas 和一系列滚动 std 等操作 伪代码如下 def target function x list gt
  • 如何强制 Xcode 使用自定义编译器?

    我想强制 Xcode 使用自定义编译器 从 src 构建的 clang llvm 以便我可以使用 clang 插件 我的Xcode版本是7 3 1 人们说使用自定义工具链是可能的 我没有对它们进行研究 因为更简单的解决方案对我来说效果很好
  • 如何更新 npm 模块,忽略 git 存储库

    我分叉了一个 npm 模块 现在它是一个 git 存储库 所以我的 package json dependencies some module git https github com my name some module git 分叉的
  • Git 存储库内部格式解释

    有没有关于 Git 如何在其存储库中存储文件的文档 我尝试在互联网上搜索 但没有可用的结果 也许我使用了不正确的查询 或者也许这是一个伟大的秘密 Git 存储库内部格式 让我解释一下 为什么我需要这些火箭科学信息 我正在使用 C 从存储库中
  • 使用 ruby​​ 迭代 yaml 数组

    我申请了YAML load file到我的示例文件 languages name English iso 639 en native name English region UK US name Klingon iso 639 tlh na
  • Delphi 2009 中如何重定向控制台(stdin、stderr)?

    我在互联网上尝试了几个示例 但它们都不起作用 脚本未执行 也许是因为适用于 Delphi 2009 之前的 unicode 我需要运行一些 python 脚本并向它们传递参数 例如 python Plugins RunPlugin py a
  • 最有用的软件开发指标是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过使用一列作为新级别将列更改为多索引

    我有一个数据框 df pd DataFrame from dict Close 1 14 03 3 14 02 0 79 88 2 80 31 High 1 14 3 3 14 33 0 80 22 2 81 19 Low 1 14 03
  • 在 Node.js 中对 S3 上传进行存根

    我该如何在 Node js 中存根 S3 上传 为了获得洞察力 我使用 Mocha 进行测试 使用 Sinon 进行存根 但我愿意改变任何东西 我有一个导出执行上传功能的文件 它看起来像这样 var AWS require aws sdk
  • ASP.NET MVC 将模型与文件一起*传递回控制器

    好吧 我已经研究了几个小时了 但我根本找不到解决方案 我想从我的用户那里获取一些数据 首先 我使用控制器创建一个接收模型的视图 public ViewResult CreateArticle Article newArticle new A
  • 为什么这个 python 循环会泄漏内存?

    我正在编写一个自定义文件系统爬虫 它通过 sys stdin 传递数百万个 glob 来进行处理 我发现运行脚本时 其内存使用量随着时间的推移而大幅增加 整个过程几乎停止了 我在下面写了一个最小的案例来说明问题 我是否做错了什么 或者我在
  • 在 angularJS 中单击一键后禁用提交按钮

    我想单击一下后禁用按钮 Code
  • 熊猫“DataFrameGroupBy”和“SeriesGroupBy”

    我承认我不是 Python 专家 但我仍然发现与 Pandas 打交道DataFrameGroupBy and SeriesGroupBy物体异常违反直觉 我有 R 背景 我有下面的数据框 import pandas as pd impor
  • JAVA中将科学记数法的数字转换为十进制数

    我有一个问题 如果一个数字的小数点前有 8 位或更多位 则该数字将以科学计数法显示 有没有一种简单的方法可以通过库或其他方式将此数字转换为十进制 我开始创建一个手动方法来解析它 但它似乎过于复杂 任何帮助将不胜感激 input exampl
  • Windows 上的 ExecJS::RuntimeError 尝试遵循 ruby​​tutorial

    UPDATE Colin https stackoverflow com users 1017768 colin r建议删除行 require tree 已解决该问题 我浪费了两天多的时间试图遵循每一条建议并解决我的问题 我正在尝试遵循ht
  • 有没有办法让 pip 在更新后的 requests.txt 中仅安装新的依赖项

    pip install upgrade r requirements txt 对所有以前安装的依赖项重复安装过程 当我有一个巨大的依赖项列表 比如超过 30 个 时 这可能会很痛苦 是否有办法检查更新后的requirements txt并仅
  • 删除数组中的空值元素

    Array 0 gt 0 value is int 0 which isn t empty value 1 gt this is empty value 2 gt this is empty value 我想让上面的数组如下 有人可以帮助我
  • 使用自定义 url/ 页面覆盖 Django-allauth 登录/注册 url

    我已经将 django allauth 配置为通过 Facebook Twitter 和 Google 登录 但是 django allauth 仅接受登录请求 accounts login 仅在以下位置提出注册请求 accounts si
  • 如何在 Haskell 中的子类定义中定义默认实现?

    我是 Haskell 的新人 以下是我的问题 给定这个类 class MyClass a where foo a gt a 然后我有一个更具体的子类 class MyClass a gt SubClass a where foo param
  • 何时使用 MongoDB [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在编写一个不一定需要的应用程序扩展能力因为它一开始不会收集大量数据 但是 如果我幸运的话 我可能会走上这条路 我将在同一个机器上运行我的网络