MongoDB
“
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
”
MongoDB 4.0 引入的事务功能,支持多文档ACID特性,例如使用 进行事务操作
“
MongoDB的核心是一个文档数据库,几乎默认情况下,这些类型的数据库不符合ACID标准,特别是涉及到多文档事务(在文档级别,MongoDB已经支持ACID事务)。大多数情况下,对于那些使用MongoDB等数据库系统的公司而言,这并不是什么大问题,因为他们并不试图同时写入多个文档。
因此,许多MongoDB用户仍然在与其文档数据库并行运行关系数据库。
事实上正如MongoDB联合创始人兼首席技术官Eliot Horowitz告诉我的那样,这是该项目背后的主要动机之一。他告诉我『并非所有这些交易都需要,但是对于大多数交易来说不需要这样做的原因是因为文档模型否定了对ACID交易的需求。但同时很明显,开发人员希望为他们的任务关键型用例进行交易。』Eliot Horowitz还认为,『一些开始与MongoDB合作的开发人员有他们可能在将来需要它的这种唠叨恐惧。而这次发布显然会带走这种恐惧。』
”
MongoDB的特性
除了上图所示的还支持:
二级索引、动态查询、全文搜索 、聚合框架、MapReduce、GridFS、地理位置索引、内存引擎 、地理分布等一系列的强大功能。
但是其也有些许的缺点,例如:
多表关联: 仅仅支持Left Outer Join
SQL 语句支持: 查询为主,部分支持 多表原子事务: 不支持 多文档原子事务:不支持 16MB 文档大小限制,不支持中文排序 ,服务端 Javascript 性能欠佳
MongoDB数据存储格式
JSON格式
“
JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。
MongoDB 使用JSON(JavaScript ObjectNotation)文档存储记录。
JSON数据库语句可以容易被解析。
Web 应用大量使用,NAME-VALUE 配对
”
MongoDB的优势
MongoDB是开源产品
JSON 文档模型、动态的数据模式、二级索引强大、查询功能、自动分片、水平扩展、自动复制、高可用、文本搜索、企业级安全、聚合框架MapReduce、大文件存储GridFS
什么时候该MongDB
新应用,需求会变,数据模型无法确定
我需要整合多个外部数据源
我的系统需要99.999%高可用
我的数据量是有亿万级或者需要不断扩容
完
领取专属 10元无门槛券
私享最新 技术干货