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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 上周五在北京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
相关文章
|
2天前
|
SQL 缓存 监控
数据库性能优化指南
数据库性能优化指南
|
5天前
|
缓存 监控 NoSQL
数据库如何进行性能优化?
【10月更文挑战第31天】数据库如何进行性能优化?
13 3
|
13天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
14天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
10天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
24 2
|
10天前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
25 1
|
16天前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
11 1
|
2天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
13 4
|
26天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
58 3
Mysql(4)—数据库索引
|
11天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
50 2

相关产品

  • 云数据库 MongoDB 版
  • 下一篇
    无影云桌面