如果我有一个带有一些分片和非分片集合的数据库。
我可以直接连接到主分片来访问(包括读取和写入)unshard集合而没有任何问题吗?
我想这样做是因为我认为连接到mongos
只会降低访问unshard集合的性能。
我试过这个并且它有效。但我担心这里有一些我不知道的问题。
答案 0 :(得分:4)
如果我有一个带有一些分片和非分片集合的数据库。 我可以直接连接到主分片进行访问(包括读取 和写)不硬的收藏没有任何问题?我想要做 这是因为我认为连接到mongos只会降低性能 用于访问unshard集合。
一般情况下,通过mongos
进行连接不会对未加密的集合产生显着的性能开销。
还值得注意的是,如果您的其他集合是分片的,那么您的应用程序将无法利用单个连接池来处理分片和非分片集合,因此您必须在应用程序逻辑中管理它。
我试过这个并且它有效。但我担心这里有一些我不知道的问题。
目前这种方法可行,因为未加密的集合总是存在于数据库的主分片上。
但是,请注意,正在开展工作以跨分片分发未加密的集合(请参阅MongoDB Jira问题跟踪器中的SERVER-939)。当发生这种变化时,你不能再认为未经加密的集合存在于主分片中,依靠mongos
正确路由会更安全。