2016-02-19 38 views
3

我使用mongoDB通过弹簧web应用程序存储和查询接近50 mn记录(没有固定模式的大型Json文件)。简单的基于K-V的查找查询会在几秒钟内运行。我正在寻找将搜索时间降至< 1秒的方法。与spring mongo分片

由于存储文件的性质,索引对我无效。我正在寻找替代品,并遇到分拆。然而,我没有找到好的教程来解释如何为现有的spring-mongo应用程序设置分片。

有人可以请我指出一个很好的解释吗? 也欢迎任何其他优化搜索时间的建议!

编辑

继评论,我将我现有的数据库蒙戈将分片与一个1台配置服务器,1个查询服务器和2个碎片。以前我(春季启动)的application.properties文件是这样的:

... 
spring.data.mongodb.database=pam 
spring.data.mongodb.host=localhost 
spring.data.mongodb.port=27017 
spring.data.mongodb.repositories.enabled=true 
spring.data.mongodb.uri=mongodb://localhost:27017/pam 
... 

我现在该如何修改以适应碎片化的数据库,具有相同的名称?

+0

仅供参考。没有“为春天设置分片”这样的东西,但是只有“设置分片”。这纯粹是关于数据库配置,并且您的应用程序(除了在设置中选择分片键)并未真正受到影响,并且不会在意连接到单个服务器或分片群集。所以这里根本不涉及任何编程。选择一个分片密钥以有效地达到你想要的访问模式是另一回事。 –

+0

至于设置分片,请阅读手册[“分片群集教程”](https://docs.mongodb.org/manual/administration/sharded-clusters/) –

+0

哦,好的。非常感谢你! –

回答

1

如果您仔细阅读文档https://docs.mongodb.com/manual/sharding/您会同意分片的事实对系统的其他部分应该是透明的。这是最初的系统可以只是单一的数据库,并与

  • mongos路由器
  • 配置服务器
  • 碎片,然后完全粉碎(即是副本)

即拆分为部署的问题,不是一个设计。 MongoDB接口保持不变。