当前位置: 首页 > 知识库问答 >
问题:

切片与Spring蒙戈

姬英武
2023-03-14

我使用mongoDB通过一个spring web应用程序存储和查询近50万条记录(没有固定模式的大型Json文件)。简单的基于K-V对的查找查询只需几秒钟。我正在寻找将搜索时间缩短到

由于存储文件的性质,索引对我不起作用。我正在寻找替代方案,并遇到了分片。但是,我没有找到很好的教程来解释如何为我现有的spring-mongo应用程序设置分片。

有人能给我一个好的解释吗?此外,任何其他优化搜索时间的建议都将受到欢迎!

编辑

在评论之后,我将现有的Mongo数据库转换为具有1个配置服务器,1个查询服务器和2个分片的分片数据库。以前我的(spring-boot)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
...

我现在如何修改它以适应同名的分片数据库

共有1个答案

贝成业
2023-03-14

如果您仔细阅读文档https://docs.mongodb.com/manual/sharding/您会同意分片的事实对于系统的其余部分是并且应该是透明的。也就是说,最初您的系统可以只是一个数据库,然后使用

  • 蒙戈斯路由器
  • 配置服务器
  • 分片(作为副本)

即分片是部署问题,而不是设计。MongoDB接口保持不变。

 类似资料:
  • 关于剪切蒙版 剪切蒙版是一个可以用其形状遮盖其他图稿的对象,因此使用剪切蒙版,您只能看到蒙版形状内的区域,从效果上来说,就是将图稿裁剪为蒙版的形状。剪切蒙版和遮盖的对象称为剪切组合。可以通过选择的两个或多个对象或者一个组或图层中的所有对象来建立剪切组合。 对象级剪切组合在 “图层 ”面板中组合成一组。如果创建图层级剪切组合,则图层顶部的对象会剪切下面的所有对象。对对象级剪切组合执行的所有操作(如变

  • 我是一个编程新手。我在go编程书中读到过,片由三部分组成:指向数组的指针、长度和容量。 我感到困惑的零切片(切片没有底层数组指向,len=0,cap=0),非零切片只有len=0,cap=0和空切片。 谁能告诉我零和空切片是否是一回事?如果它们都不同,那么请告诉这两者之间的区别是什么? 如何测试一个切片是否为空? 另外,指针在长度和容量为零的非nil片中保留什么值?

  • 根据H.264视频RFC的RTP有效载荷格式,在嗅探非idr片时,如何知道它与哪个idr片相关? 我在数据包中找不到任何配置它的区域,或者它只是与之前的idr片有关,根据序列号>

  • 这章我们开始剖析 容器, 它是可以包含大量条目(item)的数据结构, 例如数组、切片和 map。从这看到 Go 明显受到 Python 的影响。 以 [] 符号标识的数组类型几乎在所有的编程语言中都是一个基本主力。Go 语言中的数组也是类似的,只是有一些特点。Go 没有 C 那么灵活,但是拥有切片(slice)类型。这是一种建立在 Go 语言数组类型之上的抽象,要想理解切片我们必须先理解数组。数

  • 我读过一些关于零片和空片的文章。我相信我对他们之间的差异有一些基本的了解。 我的理解总结:是nil片和返回;而是空片和 然而,这个特殊的例子仍然困扰着我。 请查看下面的链接以获取代码。我的问题是最后两个案例。https://play.golang.org/p/udyHoOlSeP 假设我想比较两个片段,重命名类型和接口匹配以及所有。接收机可以是,即使未定义为按值复制;虽然参数是按值复制的,但只要参

  • 问题内容: 我很好奇拆包切片并将其作为参数发送给可变参数函数。 假设我们有一个带有可变参数的函数: 如果我们不想传入一个接口,它就可以工作,那么我们是否拆包都没关系: 如果我们有一片片的话,那会很棘手。在这里,编译器不允许我们传递解压版本: 错误提示: 在解包参数中不能将sliceOfSlices(类型[] [] interface {})用作类型[] interface {} 我不知道为什么会这