千金药方——MongoDB疑难杂症的分析和优化

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本文PPT来自阿⾥里里云数据库技术张友东(林⻘)于10月15日在2016年杭州云栖大会上发表的《MongoDB疑难杂症的分析和优化》。

Driver 使用问题

慎用local、admin

• local:存储节点自身配置信息,数据不会被同步,重要的数据不要存储在 local 数据库,避免数据丢失

• admin:存储⽤用户、⻆⾊等管理信息,写⼊时会加 DB 级别互斥写锁,业务数据不要存储在 admin 数据库,影响性能

 

合理配置连接数:

thread per connection 网络服务模型,每个线程需要1MB 的栈空间,⼤量连接时,线程切换开销大;限制连接数资源; mongod 配置 net.maxIncomingConnections 参数,Driver通过 Connection String URI 的 maxPoolSize 参数来配置连接池⼤大⼩小

 

避免使用短连接:

短连接增加额外的 connect、auth、close、线程创建及销毁开销, MongoDB 鉴权性能问题,优化后性能提示10+倍

 

干掉长(慢)请求

• 客户端发起耗时请求,如遍历集合、建索引、mapreduce、aggregation 等,主动断开连接后,后端的请求仍然在执行

• currentOp + killOp 中止后端正在运行的请求

复制集问题

管理 oplog

• 支持在线动态修改 oplog 大小

• db.runCommand({collMod: “oplog.rs”, maxSize: 1024000000})

• 支持复制集成员根据同步进度自适应管理 oplog

• 支持设置⼀一个 oplog 保护时间戳,所有超过该时间戳的 oplog都会自动保留,支持全量、增量备份

 

避免无 id 索引的集合,尽量后台建索引shard key 选择

Shared Cluster问题

分片方式:范围分片,hash分片

Shared key 选择


PPT详情如下:

a84163063f921d2c6a563dc24490373407e3aa60

7358f1e27be954a6e1aa2ef87e9ee8b5c51b83f7

52a23ca5137265cc2364354a627464ebd6e1f953

c1762d12a5ece778be333d51c93a9fef6d2f1cbb

dd7a2fcd653082e5e53d7f2e3b8e8070297c371a

3b303a9c98605d5b1fe5ebbfa04c17c6235e392a

6dbb16243886bdcef28353a5f680847411c88685


c0bed557588acf0aeb5b4e48fe570f750817bab2

3b303a9c98605d5b1fe5ebbfa04c17c6235e392a


4f852c20188c38c84f871bb8d4767db855b0f072

c83319c1fdefab289f8829035e91f0cc8bc16553

7528018cb53d56808a8adb8cc9e9b956ccafae5b

24fd81f59914153a208b2cb89b539c0ef21c2152

7bd20feb4d5944caf1781eb5b2308df15379368f

15d4c16a0ef569ca720a4defc605feb3f50dda09

fdebe26fc29f0e17376cf2059bc4181b6b8bd03b

7cfb74e799f19841de485ae3ccd45c1422bf64cd

c37ce8f78d71131ffab123923d720d85541503f8

804c4929f608b2e5c723808e3eb450f888fb9add

00e1a6e25783bfa30746924cd4a4c19fdf533f29

4bd923680e1d253b0320f7fe7e99706c2fad6ce1

1bf0c2547a98df59f7896b6cf1090244445b1ce2

62d803f4de6d63b5dd40040899b4734f4f3ad045

c65c98e5647d29c446d7a68c3be14f0f0be5164a



相关实践学习
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设计和性能监控。
91 1
|
2月前
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
6月前
|
存储 监控 NoSQL
MongoDB索引解析:工作原理、类型选择及优化策略
MongoDB索引解析:工作原理、类型选择及优化策略
|
2月前
|
存储 NoSQL MongoDB
MongoDB 查询分析
10月更文挑战第21天
18 1
|
6月前
|
NoSQL 定位技术 MongoDB
深入探索 MongoDB:高级索引解析与优化策略
深入探索 MongoDB:高级索引解析与优化策略
188 1
|
6月前
|
NoSQL 定位技术 MongoDB
解锁MongoDB索引的秘密:优化查询效率与应对限制的策略
解锁MongoDB索引的秘密:优化查询效率与应对限制的策略
100 0
|
2月前
|
存储 监控 NoSQL
TDengine 3.3.3.0 版本上线:优化监控、增强 MongoDB 支持
今天我们非常高兴地宣布,TDengine 3.3.3.0 版本正式发布。本次更新引入了多项重要功能和性能优化,旨在为用户提供更高效、更灵活的数据解决方案。
56 0
|
4月前
|
JSON NoSQL MongoDB
MongoDB Schema设计实战指南:优化数据结构,提升查询性能与数据一致性
【8月更文挑战第24天】MongoDB是一款领先的NoSQL数据库,其灵活的文档模型突破了传统关系型数据库的限制。它允许自定义数据结构,适应多样化的数据需求。设计MongoDB的Schema时需考虑数据访问模式、一致性需求及性能因素。设计原则强调简洁性、查询优化与合理使用索引。例如,在构建博客系统时,可以通过精心设计文章和用户的集合结构来提高查询效率并确保数据一致性。正确设计能够充分发挥MongoDB的优势,实现高效的数据管理。
91 3
|
4月前
|
安全 C# 数据安全/隐私保护
WPF安全加固全攻略:从数据绑定到网络通信,多维度防范让你的应用固若金汤,抵御各类攻击
【8月更文挑战第31天】安全性是WPF应用程序开发中不可或缺的一部分。本文从技术角度探讨了WPF应用面临的多种安全威胁及防护措施。通过严格验证绑定数据、限制资源加载来源、实施基于角色的权限管理和使用加密技术保障网络通信安全,可有效提升应用安全性,增强用户信任。例如,使用HTML编码防止XSS攻击、检查资源签名确保其可信度、定义安全策略限制文件访问权限,以及采用HTTPS和加密算法保护数据传输。这些措施有助于全面保障WPF应用的安全性。
62 0
|
5月前
|
存储 NoSQL MongoDB
MongoDB 索引原理与索引优化
MongoDB 索引原理与索引优化
118 1
下一篇
DataWorks