51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

MongoDB 集群开启分片操作

开启数据库分片能力 {#开启数据库分片能力}

  1. 命令行 进入 mongos

    |-----------|---------------------------------------| | 1 | mongo --host=<host> -u <user> |

  2. 切换到 admin 库

    |-----------|-------------------| | 1 | use admin |

  3. 对数据库启用分片能力

    |---------------|------------------------------------------------------------------| | 1 2 3 | db.adminCommand( { enableSharding: "<database name>" } ) |

    这一步是对数据库启用分片能力,同一个库的不同 collection 会分布到不同 shard 上,但是一个 collection 只会存在于一个 shard 上

开启集合分片 {#开启集合分片}

索引要在开启分片前建好。虽然 MongoDB 说如果是空库,开启分片时会自动创建不存在的索引,但还是建议你事前手动创建好。
索引字段最好是在空库的时候就建好。数据量很大的时候新建索引一定要小心,第一找业务不忙的时候做,第二千万别忘了加 background 参数。

还是要在 admin 库下执行

|---------------|---------------------------------------------------------------------------------------------------| | 1 2 3 | db.shardCollection( { "<database_name>.<collection_name>" : {<shardkey>: <shardtype>} } ) |

shardtype 描述

  • 1 :范围片健
  • "hashed" :哈希片键

范围片健例子

|-----------|-----------------------------------------------------------| | 1 | sh.shardCollection( "blog.sitoi" , { sitoi: 1 } ) |

哈希片键例子

|-----------|------------------------------------------------------------------| | 1 | sh.shardCollection( "blog.sitoi" , { sitoi: "hashed" } ) |

参考链接 {#参考链接}

赞(1)
未经允许不得转载:工具盒子 » MongoDB 集群开启分片操作