MongoDB
文章平均质量分 81
LightOfNight
希望能成为一名优秀的Golang开发工程师
展开
-
【后端面试题】【中间件】【NoSQL】MongoDB查询优化3(拆分、嵌入文档,操作系统)
很常见的一种优化手段,在一些特定的业务场景中,会有一些很大的文档,这些文档有很多字段,而且有一些特定的字段还特别的大。之前拆分过一个文档,非常庞大。而且在业务中,有一些庞大的字段根本用不上,在这种情况下,一次拆除了三个文档。这样做的优点很明显,比较多的业务查询,极少数会需要第二种文档;但是缺点也很明显,如果调用者,也就意味着需要查询三次,再合并组成一个业务上完整的文档。也可以升华一下:这种拆分终究是下策,最好还是在一开始使用MongoDB的时候就约束住文档的大小。原创 2024-07-06 18:29:44 · 1295 阅读 · 0 评论 -
【后端面试题】【中间件】【NoSQL】MongoDB查询优化2(优化排序、mongos优化)
在MongoDB里面,如果能够利用索引来排序的话,。如果不能利用索引来排序的话,就必须在加载了数据之后,再次进行排序,也就是进行内存排序。可想而知,如果内存排序,再叠加分页查询的话,性能会更差。比如你要查询,那么在最坏情况下,MongoDB要把所有的文件加载到内存里排序,然后找到从10000开始的100条数据优化的思路也类似MySQL。第一种是,可以考虑修改查询,也可以考虑修改索引。比如你可以新建索引。我还优化过一个分页查询。原创 2024-07-05 21:38:38 · 871 阅读 · 0 评论 -
【后端面试题】【中间件】【NoSQL】MongoDB查询过程、ESR规则、覆盖索引的优化
任何中间件的面试说到底都是以高可用、高性能和高并发为主,而高性能和高并发基本是同时存在的。性能优化一直被看作一个高级面试点,因为只有对原理了解得很透彻的人,在实践中才能找准性能优化的关键点,从而通过各种优化手段解决性能问题。原创 2024-07-04 21:00:25 · 996 阅读 · 0 评论 -
【后端面试题】【中间件】【NoSQL】MongoDB提高可用性的方案(主从结构、仲裁节点、分片、写入语义)
MongoDB的高可用和别的中间件的高可用方案基本类似。比如在MySQL里,接触了分库分表和主从同步;在Redis里,Redis也有主从结构;在Kafka里,分区也是有主从结构的。所以先介绍我们的系统有一个关键组件 - MongoDB,但是在最开始的时候,MongoDB没有启用主从,是一个单节点的。因此每年总会有一两次,MongoDB崩溃不可用。所以我把MongoDB改成了主从同步,最开始的时候业务量不多,为了节省成本,我们用了推荐的配置一主两从。原创 2024-07-03 20:36:55 · 1333 阅读 · 0 评论 -
【后端面试题】【中间件】【NoSQL】MongoDB的配置服务器、复制机制、写入语义和面试准备
引入了分片机制之后,MongoDB启用了(config server) 来存储元数据,这些元数据包括,用来控制分布式锁。其中分片信息还会被负责执行查询mongos使用。MongoDB的配置服务器有一个很大的优点,就是。大多数中间件的主从结构都是在主节点崩溃之后完全不可用,直到选举出了一个新的主节点。但是不管怎么说,配置服务器在MongoDB里是一个非常关键的组件,如果一旦配置服务器有问题,哪怕只是轻微地性能抖动一下,对整个MongoDB集群的影响都很大。原创 2024-07-02 20:47:19 · 1231 阅读 · 0 评论 -
【后端面试题】【中间件】【NoSQL】MongoDB的优点和分片机制
MongoDB因其灵活的文档模型和自动化的横向扩展备受青睐。当数据模型易变或难以预估时,MongoDB优于传统关系型数据库。分片机制确保数据分布在多个分片上,每个分片含多个128MB的块。当块超过128MB或文档数超阈值时,块会被拆分。MongoDB自动平衡数据负载,当分片间数据不均时执行再平衡,通过moveChunk命令迁移块,保持数据均衡。再平衡触发阈值基于块数量,例如最大和最小分片间差值超过2块时开始。这个过程保证了数据的无缝迁移和集群的高效运行。原创 2024-07-01 21:03:52 · 731 阅读 · 0 评论