- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
MongoDB应用与优化进阶
2700
2600
2500
2400
2017-01
2017-02
2017-03
2017-04
2017-05
2017-06
2017-07
2017-08
2017-09
2017-10
2017-11
2017-12
实例增长趋势图
实例数量 :2570+
日访问量 :263亿+
2300
2200
业务覆盖率:90%+
2100
2000
DBA人数 :1.5人
业务应用规模
数据库选型之争
无多文档事务及多表关联查询需求
业务快速迭代,需求频繁变动行业
单集群并发过大无法支撑业务增长
数据量增长预期TB及以上存储需求
期望要求99.999%数据库高可用场景
数据库选型之争
目录
特性介绍部署架构
最佳实践
高性能
高可用
分布式
文档化
强压缩
一致性
特性介绍
传说中的“数据丢失”
切换后的RollBack
特性介绍
传说中的“数据丢失”
切换后的RollBack
特性介绍
关于“写一致性”
关于写策略WriteConcern
{w:value,j:boole,wtimeout:n}
w
写入到指定个数或特定的实例
(0、n、majority或Tag)
j
写操作已确认写入journal日志
wtimeout
写入请求等待确认的超时时间
特性介绍
关于写策略WriteConcern
{w:2,j:true,wtimeout:5000}
区别不同版本主从差异
特性介绍
关于“写一致性”
关于写策略WriteConcern原理
特性介绍
目录
特性简介部署架构
最佳实践
副本集(ReplicaSet)
最小资源
自动选主
维护简单
其他扩展
部署架构
分布式集群(mongos)
运维复杂
读写扩展
弹性容量
自动均衡
数据切分
部署架构
关于mongos的chunk
部署架构
关于mongos的shardkey
-HASH分片
数据分布相对均匀(写分散)
高效等值查询场景
-片键考量
基数(Cardinality)
频率(Frequency)
部署架构
关于mongos的shardkey
-RANGE分片
适合于范围查询(读局部)
片键考量
基数(Cardinality)
频率(Frequency)
单调(Monotonically)
部署架构
关于mongos的shardkey
-ZONES分片
自定义区域分片
适合场景
基于硬件性能差异的数据切分存储
特定地理位置数据与应用服务最近
注意事项
区域覆盖的范围包含下界不含其上界
区域不可共享范围亦不能有交叉范围
部署架构
部署架构
mongos 使用限制
shardkey值不允许更新亦不可在线变更shardkey
单文档update、delete、remove条件必须带shardkey
count求分片集合总记录数不准可用aggreagte试试
不支持group操作可用aggregate替代
不支持使用geoSearch命令的地理位置查询操作
目录
特性简介
部署架构
最佳实践
常见认证问题
相关查询优化
其他使用事项
最佳实践
认证问题-合理配置连接
线程-连接网络模型
每个连接需分配1M的堆内存
大量连接创建与销毁开销大
连接资源控制
限制最大连接maxConns
配置连接池maxPoolSize
调整cursorTimeoutMillis
最佳实践
认证问题–必威体育精装版认证模式的坑
SCRAM-SHA-1的优势
更强的加密散列函数SHA-1
Client与Server端双向认证
引发问题
高并发短连接负载飙高
临时解决
client:
authMechanism=‘MONGODB-CR’server:
system.version-currentVersion:3
最佳实践
常见认证问题
相关查询优化
其他使用事项
最佳实践
查询优化-读优先级控制(readPreference)
readPreference
primary
primaryPreferred
secondary
secondaryPreferred
nearest
最佳实践
最佳实践
查询优化–索引类型及创建
最佳实践
查询优化–理解索引最左前缀原则
哪些查询可能走索引
1、2、3、4
查询包含最左索引字段
以索引创建顺序为准
与查询字段顺序无关
单个索引覆盖最多查询
最佳实践
查询优化–分页查询
普通分页查询
db.test.find({name:li}).skip(10000).limit(3)
优点:使用简单粗暴效率低
一种新的思路
db.test.find({_id:{$gt:3},name:li}
文档评论(0)