Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb、分片和水平缩放_Mongodb - Fatal编程技术网

Mongodb、分片和水平缩放

Mongodb、分片和水平缩放,mongodb,Mongodb,在mongodb中,我想使用mongos并在两台机器上进行mongodb切分,有一个集合并向我的集合中添加文档是否常见,例如: {type:'user',name:'xxx',id:1,.........} {type:'userentery',userid:1.........} {type:'usersettings',userid:1.......} {type:'userevent',userid:1.......} {type:'SomthingNotRelated',....}

在mongodb中,我想使用mongos并在两台机器上进行mongodb切分,有一个集合并向我的集合中添加文档是否常见,例如:

{type:'user',name:'xxx',id:1,.........}
{type:'userentery',userid:1.........}
{type:'usersettings',userid:1.......} 
{type:'userevent',userid:1.......}
{type:'SomthingNotRelated',....}
  • 我对如何使用mongodb的理解正确吗
  • 是进行水平缩放和避免垂直缩放的方法 避免添加更多集合
  • 我的方法有哪些缺点
  • 如果一个用户有一个非常大的数组,那么把它放在一个 是否分离文档而不是用户文档本身

分片是Mongo将分片中的单个集合(任何集合)拆分为不同的小型数据库(使其简单化)的能力。对你来说,它是完全透明的,你可以使用一个集合“colX”切分,如果你想的话,你可以把它分成几个机器。唯一的建议是,您必须足够聪明,阅读文档,以使用适当的切分键,帮助您以尽可能最佳的平衡方式拆分收藏。 您可以使用您的集合,如果此类型在统计上与集合中的良好平衡相关(这意味着如果您有1000万条记录和10种类型,则正常情况下,每个类型大约有100万条),您可以使用它并按类型分片

你的方法是正确的,你只需要使用正确的切分键


我的便条上又添了一条评论。错误的分片密钥不会使您的过程加快太多,如果您按类型查询,并且您的分片密钥是type,那么获得正确的分片以返回您的信息会更快。在另一种情况下,如果需要,比如按日期查询,但它不在您的shard密钥中,Mongo需要将查询发送到每个shard,并在最后合并结果。切分在某些情况下对您帮助很大,在其他一些情况下帮助不大。当然,您可以复制处理器,这总是会更好,但如果您没有正确选择切分键,您不会总是看到很大的差异。

切分是Mongo在切分(集合的片段)中拆分单个集合(任何集合)的能力进入不同的小型数据库(使之简单)。对你来说,它是完全透明的,你可以使用一个集合“colX”切分,如果你想的话,你可以把它分成几个机器。唯一的建议是,您必须足够聪明,阅读文档,以使用适当的切分键,帮助您以尽可能最佳的平衡方式拆分收藏。 您可以使用您的集合,如果此类型在统计上与集合中的良好平衡相关(这意味着如果您有1000万条记录和10种类型,则正常情况下,每个类型大约有100万条),您可以使用它并按类型分片

你的方法是正确的,你只需要使用正确的切分键


我的便条上又添了一条评论。错误的分片密钥不会使您的过程加快太多,如果您按类型查询,并且您的分片密钥是type,那么获得正确的分片以返回您的信息会更快。在另一种情况下,如果需要,比如按日期查询,但它不在您的shard密钥中,Mongo需要将查询发送到每个shard,并在最后合并结果。切分在某些情况下对您帮助很大,在其他一些情况下帮助不大。当然,您可以复制处理器,这总是会更好,但如果您没有正确选择切分键,您不会总是看到很大的差异。

切分是Mongo在切分(集合的片段)中拆分单个集合(任何集合)的能力进入不同的小型数据库(使之简单)。对你来说,它是完全透明的,你可以使用一个集合“colX”切分,如果你想的话,你可以把它分成几个机器。唯一的建议是,您必须足够聪明,阅读文档,以使用适当的切分键,帮助您以尽可能最佳的平衡方式拆分收藏。 您可以使用您的集合,如果此类型在统计上与集合中的良好平衡相关(这意味着如果您有1000万条记录和10种类型,则正常情况下,每个类型大约有100万条),您可以使用它并按类型分片

你的方法是正确的,你只需要使用正确的切分键


我的便条上又添了一条评论。错误的分片密钥不会使您的过程加快太多,如果您按类型查询,并且您的分片密钥是type,那么获得正确的分片以返回您的信息会更快。在另一种情况下,如果需要,比如按日期查询,但它不在您的shard密钥中,Mongo需要将查询发送到每个shard,并在最后合并结果。切分在某些情况下对您帮助很大,在其他一些情况下帮助不大。当然,您可以复制处理器,这总是会更好,但如果您没有正确选择切分键,您不会总是看到很大的差异。

切分是Mongo在切分(集合的片段)中拆分单个集合(任何集合)的能力进入不同的小型数据库(使之简单)。对你来说,它是完全透明的,你可以使用一个集合“colX”切分,如果你想的话,你可以把它分成几个机器。唯一的建议是,您必须足够聪明,阅读文档,以使用适当的切分键,帮助您以尽可能最佳的平衡方式拆分收藏。 您可以使用您的集合,如果此类型在统计上与集合中的良好平衡相关(这意味着如果您有1000万条记录和10种类型,则正常情况下,每个类型大约有100万条),您可以使用它并按类型分片

你的方法是正确的,你只需要使用正确的切分键

我的便条上又添了一条评论。错误的分片密钥不会使您的过程加快太多,如果您按类型查询,并且您的分片密钥是type,那么获得正确的分片以返回您的信息会更快。在另一种情况下,如果您需要按日期进行查询,并且它不在您的shard密钥中,Mongo将需要