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

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: 上周五在北京DTCC分享了「32 Tips to Boost MongoDB Performance」,本文是分享的PPT以及重要内容的注解。 注解:本次分享主要「自底向上」的介绍提升 MongoDB 服务性能需要注意的问题,从硬件、操作系统、服务端一直到应用端,前面3个层次的建议主要面向DBA及运维人员,而最上层的应用开发建议主要面向开发者。

MongoDB
上周五在北京DTCC分享了「32 Tips to Boost MongoDB Performance」,本文是分享的PPT以及重要内容的注解。

_01
_02
_03
_04
注解:本次分享主要「自底向上」的介绍提升 MongoDB 服务性能需要注意的问题,从硬件、操作系统、服务端一直到应用端,前面3个层次的建议主要面向DBA及运维人员,而最上层的应用开发建议主要面向开发者。

_05

注解:了解一个数据库性能时,我们可能会从硬件、软件提供商、或技术同行那里获取到一些数据,但性能数据跟硬件配置、测试方法、环境、请求类型、数据集等都有很大的关联,在自己的环境里表现如何,建议通过benchmark实测一下,目前常用的mongoDB benchmark有 YCSB 以及 sysbench

_06

注解: 硬件选型方面,在不差钱的前提下肯定是越牛逼越好;对于大部分数据库应用来说,瓶颈可能最先出现在IO上,所以从机械硬盘到SSD的硬件提升通常是效果最明显的。

_07

注解:数据库随机访问的模式较多,建议关闭THP、NUMA、readahead等特性,不排除这些特性可能在某些特定场景上能有性能提升,如果要开启请一定先做下对比测试。

_08

注解:wiredtiger引擎在锁粒度、数据压缩上的支持远超mmapv1,从mmapv1升级到wiredtiger引擎,通常会带来存储成本的降低,以及性能的提升。

_09

注解:生产环境建议一定使用3节点的MongoDB复制集,如果是写(尤其是更新、删除)密集型的应用,可以考虑讲oplog设置更大点(默认为磁盘空间5%)。

_10

注解:mongoDB sharding 能实现数据库的水平扩展,但其相比复制集运维管理上更加复杂,建议只有在真正需要(扩展写入能力、扩展存储容量、降低当个分片故障时的影响)的时候才考虑使用sharding。

_11

注解:选择shard key时,主要考虑key的「离散度」以及「频率」,离散度越高越好,能更好的分散数据;频率越低越好,避免出现热点;实际选择时,要结合查询需求来确定,最满足业务需求的才是最好的。

_12

注解:sharding默认会自动在shard间进行数据迁移,如果迁移对线上访问有性能冲击,可以设置迁移窗口期,比如只在凌晨「1:00 - 6:00」来做数据迁移。

_13
注解:慢请求对定位性能问题非常有帮助,建议线上业务都开启,并设置合理的阈值,默认为100ms。
_14
注解:监控对任何线上业务都必不可少,监控的信息能让你充分了解线上服务的运行状态。

_15

注解:很多场景下,数据备份是最后一根救命稻草,有备无患,建议数据库一定做好备份。

_16

_17

_18
_19
_20
_21
注解: MongoDB Driver:使用正确的姿势连接复制集
_22
注解: MongoDB Driver:使用正确的姿势连接分片集群
_23

_24
_25
_26

_27
_28
_29
_30
注解:阿里云-MongoDB云数据库,了解详情

_31
MongoDB

猛击这里下载PDF版本

相关实践学习
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
相关文章
|
4天前
|
JSON NoSQL MongoDB
理解Nosql数据库的mongodb
【5月更文挑战第5天】MongoDB是2009年发布的一款通用型NoSQL数据库,结合了关系模型和NoSQL的优点,适用于各种现代应用。其特点包括图形界面、数据服务、云基础设施集成(AWS, Azure, Google Cloud)。它具备全面的查询能力、ACID事务、可调整的一致性保证,并有多语言驱动及工具,可在任何地方运行。
44 4
|
4天前
|
存储 NoSQL MongoDB
MongoDB数据库转换为表格文件的Python实现
MongoDB数据库转换为表格文件的Python实现
36 0
|
4天前
|
存储 NoSQL 关系型数据库
Percona XtraBackup是否支持MongoDB数据库备份?
【5月更文挑战第13天】Percona XtraBackup是否支持MongoDB数据库备份?
28 1
|
2天前
|
存储 SQL NoSQL
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
什么是 MongoDB,为什么它是当今最受欢迎的数据库之一?
|
4天前
|
NoSQL atlas MongoDB
Nosql数据库MongoDB的使用场景
【5月更文挑战第5天】 MongoDB是全球性的多云数据库,可在私有、公共和混合云中运行,提供高可用性、扩展性和合规性。 安全特性包括认证、授权、审计、网络隔离和加密。可提供跨云操作、可视化工具、搜索功能和数据湖支持,适用于现代应用开发,包括边缘数据处理。
33 1
|
4天前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 分片策略与最佳实践
【5月更文挑战第10天】MongoDB 分片是应对大数据量的扩展策略,涉及哈希和范围分片两种策略。分片架构包含分片服务器、配置服务器和路由服务器。最佳实践包括选择合适分片键、监控调整、避免热点数据等。注意数据分布不均和跨分片查询的挑战。通过实例展示了如何在电商场景中应用分片。文章旨在帮助理解并优化 MongoDB 分片使用。
【MongoDB 专栏】MongoDB 分片策略与最佳实践
|
4天前
|
存储 NoSQL 关系型数据库
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
【5月更文挑战第10天】本文对比了MongoDB与传统关系型数据库在数据模型、存储结构、扩展性、性能、事务支持、数据一致性和适用场景等方面的差异。MongoDB以其灵活的文档模型、优秀的扩展性和高性能在处理非结构化数据和高并发场景中脱颖而出,而关系型数据库则在事务处理和强一致性上更具优势。两者各有适用场景,选择应根据实际需求来定。随着技术发展,两者正相互融合,共同构建更丰富的数据库生态。
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
|
4天前
|
NoSQL MongoDB 数据库
探寻MongoDB副本集选举机制 阿里云与MongoDB的DBaaS技术合作创新
阿里云连续第五年斩获MongoDB合作伙伴奖项,也是唯一获此殊荣的中国云厂商。一起学习MongoDB副本集的选举机制以及可能会出现的特殊情况。
探寻MongoDB副本集选举机制  阿里云与MongoDB的DBaaS技术合作创新
|
4天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
24 0
|
4天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
13 0

相关产品

  • 云数据库 MongoDB 版