如果我有一个包含一些分片和未分片集合的数据库。是否可以直接连接主分片来访问(包括读写) unshard集合?我之所以这样做,是因为我认为连接到mongos只会降低访问unshard集合的性能。
我已经试过了,它很管用。但我担心这里有一些我不知道的问题。
发布于 2012-11-19 11:46:49
如果我有一个包含一些分片和未分片集合的数据库,则为
。是否可以直接连接主分片来访问(包括读写) unshard集合?我之所以这样做,是因为我认为连接到mongos只会降低访问unshard集合的性能。
通常,通过mongos进行连接不会对未分片的集合产生显着的性能开销。
还值得注意的是,如果您的其他集合是分片的,则您的应用程序将无法同时为分片和未分片的集合利用单个连接池,因此您必须在应用程序逻辑中对此进行管理。
我已经试过了,它起作用了。但我担心这里有一些我不知道的问题。
目前,这种方法是有效的,因为未分片的集合始终位于数据库的主分片上。
但是,请注意,正在进行跨分片分发未分片集合的工作(请参阅MongoDB Jira问题跟踪器中的SERVER-939 )。当这种变化发生时,您不能再假设未分片的集合位于主分片中,依赖mongos来正确路由将会更安全。
https://stackoverflow.com/questions/13444304
复制相似问题