-
Mongo 51-mongo expire mongo 过期索引 TTL Index
如何优雅删除
ttl index 作用
有些类似于 redis 的 expire,设置之后,mongo 会有一个异步进程去定时清理数据信息。
应用场景
现在的 mongo 中存放每天的数据信息,前一天的数据信息会进行清空。
原来是采用定时任务清空的方式。
定时任务虽然可以指定时间,但是对于 mongo 的瞬时压力还是很大的。
解决方式
使用 ttl index
TTL In...
2018-12-10 03:35:23 |
Database
-
Mongo 分片平衡器-50-优化实战
初始化
创建 collection
可以跳过,插入数据会默认创建。
初始化数据
for(i=1;i<=10000;i++){db.test.insert({"id":i,"name":"test", "amount": i+10000})}
for(i=1;i<=10000;i++){db.test.insert({"id":i,"name":"test2", "am...
2018-12-10 03:35:23 |
Database
-
Mongo 分片平衡器-48
平衡器
MongoDB平衡器是一个后台进程,用于监视每个分片上的块数。
当给定分片上的块数达到特定迁移阈值时,平衡器会尝试在分片之间自动迁移块,并在每个分片中达到相同数量的块。
分片群集的平衡过程对用户和应用程序层完全透明,但在执行过程时可能会对性能产生一些影响。
从MongoDB 3.4开始,balancer在配置服务器副本集(CSRS)的主服务器上运行:
在3.4版中,当平...
2018-12-10 03:35:23 |
Database
-
Mongo 分片 Chunks-48
Data Partitioning with Chunks
MongoDB Atlas使用最佳实践实现分片,允许您通过GUI扩展群集。
配置服务器和查询路由器的部署和管理是完全自动化的。 从这里开始吧。
MongoDB使用与集合关联的分片键将数据分区为块。
块由分片数据的子集组成。
每个块都具有基于分片键的包含较低且独占的较高范围。
mongos路由根据分片键值写入适当的块。...
2018-12-10 03:35:23 |
Database
-
Mongo 分片 Zones-47
Zones
在分片群集中,您可以根据分片键创建分片数据区域。您可以将每个区域与群集中的一个或多个分片相关联。分片可以与任意数量的区域相关联。在平衡群集中,MongoDB仅将区域覆盖的块迁移到与该区域关联的分片。
可以应用区域的一些常见部署模式如下:
隔离特定分片集上的特定数据子集。
确保最相关的数据驻留在地理上最靠近应用程序服务器的分片上。
根据分片硬件的硬件/性能将数据路由到分片...
2018-12-10 03:35:23 |
Database
-
Mongo 分片 ranged sharding-46
范围分片
基于范围的分片涉及将数据划分为由分片键值确定的连续范围。
在此模型中,具有“close”分片键值的文档可能位于相同的块或分片中。
这允许有效查询,其中读取连续范围内的目标文档。
但是,读取和写入性能可能会随着分片密钥选择不当而降低。
请参阅碎片键选择。
如果没有配置其他选项(如散列分片或区域所需的选项),则基于范围的分片是默认的分片方法。
分片键选择
当分片键显...
2018-12-10 03:35:23 |
Database
-
Mongo 分片 hashed sharding-45
hashed sharding
散列分片使用散列索引在共享群集中分区数据。
散列索引计算单个字段的哈希值作为索引值; 此值用作分片键。
散列分片在分片群集中提供更均匀的数据分布,但代价是减少了目标操作与广播操作。
后哈希,具有“关闭”分片键值的文档不太可能在同一块或分片上 - mongos更有可能执行广播操作以满足给定的远程查询。
mongos可以将具有相等匹配的查询定位到单个分片...
2018-12-10 03:35:23 |
Database
-
Mongo 分片 shard key-44
Shard Keys
分片键确定集合的分片中集合文档的分布。
分片键是索引字段或索引化合物字段,它们存在于集合中的每个文档中。
MongoDB使用分片键值范围对集合中的数据进行分区。
每个范围定义非重叠的分片键值范围,并与块相关联。
MongoDB尝试在群集中的分片之间均匀分布块。
分片键与块分布的有效性直接相关。
请参阅选择分片键。
重要
分片集合后,分片键和...
2018-12-10 03:35:23 |
Database