MongoDB进阶之路:不仅仅是技术研究,还有优化和最佳实践

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
日志服务 SLS,月写入数据量 50GB 1个月
简介: MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本文将从操作手册、技术研究、会议分享、场景应用等方向给大家推荐干货好文。

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

本文将从操作手册、技术研究、会议分享、场景应用等方向给大家推荐干货好文。

一. 操作手册
MongDB操作手册

快速入门旨在帮助您快速创建MongoDB实例、对实例进行基本设置以及连接实例数据库,让您知晓从购买MongoDB实例到开始使用实例的基本流程。

点击阅读详情

MongDB视频教程

1.白名单设置及连接

2.备份与恢复

3.监控与报警

4.实例创建

5.网络类型切换

二. 技术研究
1.MongoDB Driver:使用正确的姿势连接复制集

MongoDB复制集(Replica Set)通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用。但需要注意的时,连接副本集的姿势如果不对,服务高可用将不复存在。

点击阅读详情

2.MongoDB Driver:使用正确的姿势连接分片集群

云数据库 MongoDB 版 基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。

点击阅读详情

3.MongoDB云数据库常见问题诊断

重要的内容 MongoDB的主备节点在运行过程中是不固定的,实例重启、升级、节点故障等都有可能导致主备切换,在生产环境应该使用副本集的方式来正确连接MongoDB来实现高可用。 连接问题 用户可通过DMS或mongo shell连接MongoDB云数据库,以下场景都基于用户使用mongo shell连接数据库。

点击阅读详情

4.MongoDB疑难杂症分析及优化

本文主要介绍阿里云 MongoDB 数据库上客户遇到的问题,及相应的解决方案。

点击阅读详情

5.MongoDB复制集原理

复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。

点击阅读详情

6.MongoDB复制集同步原理解析

MongoDB副本集数据同步](docs.mongodb/manual/core/replica-set-sync/)主要包含2个步骤 intial sync,可以理解为全量同步 replication,追同步源的oplog,可以理解为增量同步 本文是对MongoDB高可用复制集原理的补充,会详细介绍MongoDB数据同步的实现原理。

点击阅读详情

7.MongoDB索引原理

MongoDB索引原理 为什么需要索引? 当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql)。

点击阅读详情

8.MongoDB Sharded cluster架构原理

为什么需要Sharded cluster? MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『可扩展性』,通过json文档来实现灵活模式,通过复制集来保证高可用,通过Sharded cluster来保证可扩展性。

点击阅读详情

9.关于MongoDB Sharding,你应该知道的

MongoDB Sharded Cluster 原理 如果你还不了解 MongoDB Sharded cluster,可以先看文档认识一下 中文简介:MongoDB Sharded cluster架构原理 英文汇总:docs.mongodb/manual/sharding/

点击阅读详情

10.MongoDB sharding chunk 分裂与迁移详解

云数据库 MongoDB 版 基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。

点击阅读详情

11.MongoDB Secondary 延时高(同步锁)问题分析

背景介绍 MongoDB 复制集里 Secondary 不断从主上批量拉取 oplog,然后在本地重放,以保证数据与 Primary 一致。同步原理参考MongoDB复制集同步原理解析 Secondary 拉取到一批 oplog 后,在重放这批 oplog 时,会加一个特殊的 Lock::ParallelBatchWriterMode 的锁,这个锁会阻塞所有的读请求,直到这批 oplog 重放完成。

点击阅读详情

12.MongoDB dropdatabase 后,数据能恢复么?

最近好几个社区用户咨询,错误的执行了 dropDatabse 把数据库误删除了(或 dropCollection 误删集合),有什么方法能恢复数据?本文主要介绍几种可能有效的恢复方案。 方案1:通过备份集恢复 如果对 MongoDB 做了全量备份 + 增量备份,那么可以通过备份集及来恢复数据。

点击阅读详情

13.MongoDB请求处理流程

Mongodb多存储引擎支持机制介绍了Mongodb存储层创建数据库、创建集合、插入文档等数据库操作接口,本文将介绍mongodb处理客户端请求的模型。

点击阅读详情

14.MongoDB使用教程系列文章--Driver原理(初始化)

前言 Driver是MongoDB非常重要的组成部分,通过不同的配置实现Secondary访问;读写分离,动态感知集群容灾切换等功能。MongoDB目前已经覆盖了大部分的开发语言,常见的JAVA到Go,可以参考官方连接MongoDB Drivers。

点击阅读详情

15.MongoDB Wiredtiger存储引擎实现原理

Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理清了wiredtiger的大致原理,并简单总结,不保证内容都是正确的,如有问题请指出,欢迎讨论交流。

点击阅读详情

16.MongoDB mmapv1存储引擎解析

mongodb的mongod服务管理一个数据目录,可包含多个DB,每个DB的数据单独组织,本文主要介绍mmapv1存储引擎的数据组织方式。

点击阅读详情

17.图解故障服务器下线:关于阿里云MongoDB高可用的探秘

服务器容灾一直是云服务运维过程中无法避开的问题。MongoDB采用的是什么方法,得以做到在有机器故障的情况下依旧能保证用户业务的高可用?最近举行的“MongoDB Sharding杭州用户交流会”中,针对这一问题,阿里云资深研发工程师果实分享了关于MongoDB 故障服务器如何下线方面的详尽的技术解密。

点击阅读详情

18.阿里云MongoDB Sharding备份和恢复服务深度解密

大数据时代,数据保存的重要性不言而喻。在数据保存过程中,买QQ平台数据的备份更是一个值得深入研究的课题。在3月12日下午举行的MongoDB杭州用户交流会上,阿里云技术专家明俨分享了MongoDB Sharding备份和恢复的技术解密。

点击阅读详情

三.会议分享
1.MongoDB最佳实践及性能优化(DTCC中国数据库技术大会分享PPT)

上周五在北京DTCC分享了「32 Tips to Boost MongoDB Performance」,本文是分享的PPT以及重要内容的注解。 注解:本次分享主要「自底向上」的介绍提升 MongoDB 服务性能需要注意的问题,从硬件、操作系统、服务端一直到应用端,前面3个层次的建议主要面向DBA及运维人员,而最上层的应用开发建议主要面向开发者。

点击阅读详情

2.MongoDB秒级备份恢复(SDCC上海站数据库核心技术与应用实战峰会分享PPT)

本文是我3月18日在CSDN举办的SDCC上分享的PPT内容,主要介绍如何对MongoDB复制集及分片集群实现任意时间点的备份恢复,猛击这里下载PDF版本

点击阅读详情

3.MongoDB最佳实践及问题案例分析

介绍MongoDB最佳时间以及线上问题的案例分析

点击阅读详情

4.基于MongoDB的高并发高可用政府云平台架构实践

3月12日下午在阿里巴巴西溪园区,举行了MongoDB杭州用户交流会。微软MSDN特邀讲师徐雷分享《基于MongoDB的政府云平台高并发高可用HA架构实践 》,从自身实践出发,讲述了政府云平台分层、技术栈选型、物理架构、API架构及DB数据库架构的设计思路和方法

点击阅读详情

5.MongoDB分布式架构演进

文章内容为2016年 PostgresSQL 中国用户会上分享内容,主要介绍 MongoDB 高可用、可扩展的分布式架构的演进过程。

点击阅读详情

四.场景应用

1.什么场景应该用 MongoDB ?

月初在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨 的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB?

点击阅读详情

2.MongoDB应用案例:使用 MongoDB 存储日志数据

线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误、警告、及用户行为等信息,通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题,但当产生大量的日志之后,要想从大量日志里挖掘出有价值的内容,则需要对数据进行进一步的存储和分析。

点击阅读详情

3.MongoDB应用案例:使用 MongoDB 存储商品分类信息

电商业务一个基本的功能模块就是存储品类丰富的商品信息,各种商品特性、参数各异,MongoDB 灵活的文档模型非常适合于这类业务,本文主要介绍如何使用 MongoDB 来存储商品分类信息,内容翻译自User case - Product Catalog 关系型数据库解决方案 上述问题使用传统的关系型数据库也可以解决,比如以下几种方案 针对不同商品,创建不同的表 比如音乐专辑、电影这2种商品,有一部分共同的属性,但也有很多自身特有的属性,可以创建2个不同的表,拥有不同的schema。

点击阅读详情

4.MongoDB数据建模小案例:朋友圈评论内容管理

MongoDB数据建模小案例:朋友圈评论内容管理

点击阅读详情

5.MongoDB数据建模小案例:物联网时序数据库建模

注:本案例来自MongoDB官方教程PPT,也是一个非常典型的CASE,故此翻译,并结合当前MongoDB版本做了一些内容上的更新。 本案例非常适合与IoT场景的数据采集,结合MongoDB的Sharding能力,文档数据结构等优点,可以非常好的解决物联网使用场景。

点击阅读详情

6.阿里云MongoDB与EMR的HelloWorld

越来越多的应用采用MongoDB作为数据存储层,性能高,扩展性强,通过WriteCocern参数还可以控制写入持久级别,CAP上灵活配置。文档型的存储结构又是特别适合物联网,游戏等领域,这些数据也蕴藏这巨大的价值,就像是金矿一样,需要挖掘。虽然MongoDB提供了MapReduce功能,但功能相对薄弱,如果说MongoDB MapReduce是铁锹,Spark就是一台真正的挖掘机。

点击阅读详情

7.当物流行业遇见MongoDB

快递物流系统里最常见的一种业务类型就是订单的查询和记录。利用MongoDB数据库能够帮助企业快速搭建物流快递系统,助力物流企业轻松上云

点击阅读详情

8.天生一对,当游戏遇上MongoDB

当游戏遇上MongoDB,会碰撞出什么样的火花,本文为您一一道来。MongoDB针对游戏灵活多变需求、一些专有场景-道具自动过期和附近玩家、高可用、高可扩展、回档、滚服、运营数据分析等场景都有非常好的解决方案,可谓是天生一对。

点击阅读详情

五.官网
1.云数据库 MongoDB版

云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。

点击阅读详情

2.云数据库MongoDB Sharding发布

支持分表存储、自建迁移、副本集转Sharding等

提供容灾备份、弹性扩容、监控运维等方案

点击阅读详情

3.云数据库MongoDB独享实例上线

独享资源,保障业务持久稳定

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
3月前
|
存储 监控 NoSQL
MongoDB优化的几点原则
这篇文章讨论了MongoDB优化的一些原则,包括查询优化、热数据大小、文件系统选择、硬盘选择、查询方式优化、sharding key设计和性能监控。
97 1
|
2月前
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
3月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
3月前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)
|
6天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
32 15
|
3月前
|
存储 监控 NoSQL
*MongoDB的水平扩展主要通过分片技术实
*MongoDB的水平扩展主要通过分片技术实
55 5
|
2月前
|
存储 监控 NoSQL
TDengine 3.3.3.0 版本上线:优化监控、增强 MongoDB 支持
今天我们非常高兴地宣布,TDengine 3.3.3.0 版本正式发布。本次更新引入了多项重要功能和性能优化,旨在为用户提供更高效、更灵活的数据解决方案。
62 0
|
4月前
|
JSON NoSQL MongoDB
MongoDB Schema设计实战指南:优化数据结构,提升查询性能与数据一致性
【8月更文挑战第24天】MongoDB是一款领先的NoSQL数据库,其灵活的文档模型突破了传统关系型数据库的限制。它允许自定义数据结构,适应多样化的数据需求。设计MongoDB的Schema时需考虑数据访问模式、一致性需求及性能因素。设计原则强调简洁性、查询优化与合理使用索引。例如,在构建博客系统时,可以通过精心设计文章和用户的集合结构来提高查询效率并确保数据一致性。正确设计能够充分发挥MongoDB的优势,实现高效的数据管理。
99 3
|
4月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
91 2