`
zhuzhiguosnail
  • 浏览: 110520 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

什么时候用MongoDB?

阅读更多

NoSQL products (and among them MongoDB) should be used to meet challenges. If you have one of the following challenges, you should consider MongoDB:

  • You Expect a High Write Load MongoDB by default prefers high insert rate over transaction safety. If you need to load tons of data lines with a low business value for each one, MongoDB should fit. Don't do that with $1M transactions recording or at least in these cases do it with an extra safety.
  • You need High Availability in an Unreliable Environment (Cloud and Real Life) Setting replicaSet (set of servers that act as Master-Slaves) is easy and fast. Moreover, recovery from a node (or a data center) failure is instant, safe and automatic
  • You need to Grow Big (and Shard Your Data) Databases scaling is hard (a single MySQL table performance will degrade when crossing the 5-10GB per table). If you need to partition and shard your database, MongoDB has a built in easy solution for that.
  • Your Data is Location Based MongoDB has built in spacial functions, so finding relevant data from specific locations is fast and accurate.
  • Your Data Set is Going to be Big (starting from 1GB) and Schema is Not Stable Adding new columns to RDBMS can lock the entire database in some database, or create a major load and performance degradation in other. Usually it happens when table size is larger than 1GB (and can be major pain for a system like BillRun that is described bellow and has several TB in a single table). As MongoDB is schema-less, adding a new field, does not effect old rows (or documents) and will be instant. Other plus is that you do not need a DBA to modify your schema when application changes.
  • You Don't have a DBA If you don't have a DBA, and you don't want to normalize your data and do joins, you should consider MongoDB. MongoDB is great for class persistence, as classes can be serialized to JSON and stored AS IS in MongoDB. Note: If you are expecting to go big, please notice that you will need to follow some best practices to avoid pitfalls.
分享到:
评论

相关推荐

    MongoDB 55 道面试题及答案.docx

    为什么在 MongoDB 中使用 "Object ID" 数据类型? "ObjectID" 数据类型用于存储文档 id。ObjectID 由四部分组成:时间戳、客户端 ID、客户进程 ID、三个字节的增量计数器。 在 MongoDB 中什么是索引? 索引用于...

    dbeaver21.1-enterprise-agent用于连接MongoDB等NoSQL类型数据库

    通过使用dbeaver21.1-enterprise-agent,用户不仅可以高效地管理MongoDB,还能充分利用其对NoSQL数据库的强大支持,提升工作效率,优化数据管理流程。无论是进行日常的数据维护,还是进行复杂的数据分析项目,这款...

    MongoDB 43 道面试题及答案.docx

    什么是 MongoDB? MongoDB 是一种提供高性能、高可用性和易于扩展的文档数据库。它使用 BSON(二进制交换和结构对象表示法)对象来存储数据,在集合中存储数据记录。 MongoDB 中的 Namespace 是什么? MongoDB 中...

    PHP操作MONGODB详细文档

    要给 MongoDB 的服务器端添加权限验证,需要在启动 MongoDB 的服务的时候添加--auth 参数,例如: ``` d:\mongodb\bin>mongod --dbpath d:\mongodb\data --logpath d:\mongodb\log\mongodb.log --logappend --...

    windows下MongoDB最新的安装包

    在2018年8月29日的时候,获取MongoDB的最新Windows安装包可能相对复杂,因为官网通常需要用户注册并验证邮箱才能下载。这个压缩包文件的分享,无疑为那些寻找最新版本MongoDB的用户提供了方便。 安装MongoDB的过程...

    MongoDB Sharding 机制分析

    3. 透明的使用接口:MongoDB 的 Sharding 对客户端提供了透明的使用接口,大部分功能可用,基本不需要更改任何代码。 4. 高可扩展性:MongoDB 的 Sharding 节点是无状态的,可以任意水平扩展。 因此,MongoDB 的 ...

    mongodb入门时候文档

    - 使用`mongo`命令行工具连接到MongoDB服务器。 - 常用操作包括插入文档(`insertOne`、`insertMany`)、查询文档(`find`)、更新文档(`updateOne`、`updateMany`)、删除文档(`deleteOne`、`deleteMany`)等。...

    Spark与mongodb整合完整版本

    当 RDD 需要读取或者写入数据到 MongoDB 的时候,会自动创建链接。 3. 写入数据到 MongoDB 将 RDD 数据写入到 MongoDB 时,数据必须转化为 BSON document。可以写个简单的 map 函数来实现将数据转化为 Document ...

    mongodb学习笔记

    MongoDB 中可以使用 `insert` 方法来插入文档,例如 `db.[documentName].insert({})`。但是,需要注意的是,在 shell 中不能批量插入文档,需要使用应用驱动或 shell 的 for 循环来实现批量插入。 Save 操作 `...

    MongoDB 24 道面试题及答案.docx

    * 查询关系:Redis使用简单的Key-Value查询,MongoDB使用文档型查询,HBase使用列存储型查询,MySQL使用SQL查询。 * 事务模式:Redis不支持事务,MongoDB支持简单的事务,HBase支持批量操作,MySQL支持ACID事务。 * ...

Global site tag (gtag.js) - Google Analytics