如果我有一个包含一些分片和非分片集合的数据库。我可以直接连接到主分片以毫无问题地访问(包括读取和写入)非分片集合吗?我想这样做是因为我认为连接mongos
只会降低访问非碎片集合的性能。
我已经尝试过了,它有效。但恐怕这里有一些我不知道的问题。
如果我有一个包含一些分片和非分片集合的数据库。我可以直接连接到主分片以毫无问题地访问(包括读取和写入)非分片集合吗?我想这样做是因为我认为连接mongos
只会降低访问非碎片集合的性能。
我已经尝试过了,它有效。但恐怕这里有一些我不知道的问题。
如果我有一个包含一些分片和非分片集合的数据库。我可以直接连接到主分片以毫无问题地访问(包括读取和写入)非分片集合吗?我想这样做是因为我认为连接到 mongos 只会降低访问 unshard 集合的性能。
一般来说,通过 连接mongos
不应该对您的非分片集合产生显着的性能开销。
还值得注意的是,如果您的其他集合被分片,您的应用程序将无法为分片和非分片集合利用单个连接池,因此您必须在应用程序逻辑中管理它。
我已经尝试过了,它有效。但恐怕这里有一些我不知道的问题。
目前这种方法会起作用,因为未分片的集合总是存在于数据库的主分片上。
但是,请注意,跨分片分发非分片集合的工作正在进行中(请参阅MongoDB Jira 问题跟踪器中的SERVER-939)。当这种变化发生时,您不能再假设未分片的集合存在于主分片中,依靠mongos
正确路由会更安全。