俄罗斯方块greentea是哪国人

索引支持在MongoDB中高效执行查询。如果没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择那些匹配查询语句的文档。如果查询存在适当的索引,MongoDB可以使用该索引来限制它必须检查的文档数量。

索引是一种特殊的数据结构[1],它以一种易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段的值排序。索引项的排序支持高效的相等匹配和基于范围的查询操作。另外,MongoDB可以使用索引中的排序返回排序后的结果。

下图演示了使用索引选择和排序匹配文档的查询:

从根本上说,MongoDB中的索引与其他数据库系统中的索引类似。MongoDB在集合级别定义索引,并支持MongoDB集合中文档的任何字段或子字段上的索引。

在输出中,您只构建用于测试的索引。关于shardA和shardC的记录。

C.在包含收集块的碎片上构建索引
对于包含集合块的每个碎片,按照以下步骤在碎片上构建索引。

C1.停止一个备用服务器并作为独立服务器重新启动

对于受影响的碎片,停止与其某个次要碎片关联的mongod进程。进行以下配置更新后重新启动:

(1)以配置文件的形式

如果您正在使用配置文件,请进行以下配置更新:

  • 将net.port改成另一个端口。[2]将原始端口设置作为注释记录下来。

例如,对于一个碎片复制集成员,更新后的配置文件将包含如下内容:

(1,2)通过在不同的端口上运行mongod,可以确保在构建索引时,复制集的其他成员和所有客户端不会与该成员联系。

(2) 通过命令行的形式修改配置:

如果使用命令行选项,进行以下配置更新:

  • 修改--端口到另一个端口。[2]

(1,2)通过在不同的端口上运行mongod,可以确保在构建索引时,复制集的其他成员和所有客户端不会与该成员联系。

直接连接到在新端口上作为独立运行的mongod实例,并为该实例创建新索引。

C3. 以复制集成员的身份重新启动mongod程序
当索引构建完成时,关闭mongod实例。撤消在作为独立程序启动时所做的配置更改,以返回到其原始配置并重新启动。

例如,重新启动你的复制集碎片成员:

(1)如果你正在使用一个配置文件:

其他设置(如储存)。dbPath等)保持不变。

(2)如果你使用命令行选项:

  • 如果是分片成员,则包含——shardsvr;如果是配置服务器成员,则包含——configsvr。

其他设置(例如——dbpath等)保持不变。

C4.对碎片的其余附属服务器重复此过程
一旦成员赶上了集合中的其他成员,对碎片的其余次要成员一次重复一个成员的过程:

  1. C1.停止一个备用服务器并作为独立服务器重新启动
  2. C3.以复制集成员的身份重新启动mongod程序

C5.在主服务器上构建索引
当shard的所有二级拥有新索引时,为shard下拉主索引,使用上面描述的过程作为一个独立的程序重新启动它,并在以前的主索引上构建索引:

  1. 使用mongo shell中的rs.stepDown()方法来逐步退出主进程。成功下步后,当前主服务器将成为一个辅助服务器,而复制集成员将选择一个新的主服务器。
  2. C1.停止一个备用服务器并作为独立服务器重新启动
  3. C3.以复制集成员的身份重新启动mongod程序

D.重复其他受影响的碎片
为切分构建完索引之后,重复C.在包含其他受影响切分的收集块的切分上构建索引。

完成受影响碎片的滚动索引构建之后,重新启动平衡器。

我要回帖

更多关于 俄罗斯方块jonas哪国人 的文章