MongoDB
文章平均质量分 86
xuliuzai
己欲立而立人 己欲达而达人!
展开
-
关于MongoDB 固定集合(capped collection)的知识梳理
MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection)。固定集合可以声明collection的容量大小,其行为类似于循环队列。数据插入时,新文档会被插入到队列的末尾,如果队列已经被占满,那么最老的文档会被之后插入的文档覆盖。固定集合的优点1.写入速度提升。固定集合中的数据被顺序写入磁盘上的固定空间,所以,不会因为其他集合的一些随机性的写操作而“中断”,其写入速度非常快(不建立索引,性能更好)。原创 2024-09-29 00:20:58 · 454 阅读 · 0 评论 -
如何在MongoDB设计存储你的数据(JSON化)?
当我们决定将数据存储下来的时候,我们首先要回答的一个问题就是:“我打算存储什么样的数据?这些数据之间有什么关系?实体之间有什么关系?实体的属性之间有什么关系”。为了说明问题,我们这儿举例的场景是要描述 库存清单的数据库,库存清单数据 包括 物料名称、数量、规格大小、状态、标签说明、等级。如下list是我们希望关于库存清单的部分格式数据namequantitysizestatustagsratingjournal2514x21,cmA9notebook508.5x11,inA。原创 2024-09-29 00:04:00 · 560 阅读 · 0 评论 -
推荐一款MongoDB的客户端管理工具--nosqlbooster
今天给大家推荐一款MongoDB的客户端工具--nosqlbooster,这个也是我工作中一直使用的连接管理MongoDB的工具。这个工具还有个曾用名--mongobooster。nosqlbooster立志做“The Smartest IDE for MongoDB”。它支持 MongoDB v2.6-4.0所有版本,并且更新升级及时。它既有免费版,也有加强升级的付费版。nosqlbooster的官网地址为https://nosqlbooster.com。原创 2024-09-28 23:54:58 · 511 阅读 · 0 评论 -
单台MongoDB实例开启Oplog
我们知道MongoDB的副本集有一个数据结构Oplog,里面存储了Primary节点的所有写操作(此处的写操作是指查询以外的操作,包含 更新、异常等)。),MongoDB实例重启,第一次登入,执行其他命令时(例如:show dbs),会提示错误,错误信息如下,如果数据库的数据量不大,并且长时间初始这种过渡状态(SECONDARY或OTHER),去看实例的日志,也显示无进展,此时可以考虑重启服务。但是在实际的生产环境中,我们很多MongoDB 数据库是单实例的,那么我们能否在单实例数据库上开启Oplog?原创 2024-09-28 23:43:50 · 93 阅读 · 0 评论 -
MongoDB更需要好的模式设计 及 案例赏析
从中可以看出,publisher信息描述比较多,并且都相同,每个文档中都存放,浪费太多的存储空间,显得无用臃肿,还有个明显的缺点就是 当publisher数据更新时,需要对所有的书籍文档进行刷新。例如,这里采用引用模式将员工信息存储在了3个文档中,基本信息一个文档,联系方式一个文档,登录权限放在了一个文档中。上面的文档可以查询出子文档,但是会显示出多个文档,例如上面的查询语句,会返回出MongoDB 文档和 dbm文档 ,我们还需要还特殊处理,那么可不可以在一个文档中显示出所以的子节点呢?原创 2024-09-28 23:39:54 · 405 阅读 · 0 评论 -
MongoDB 提升性能的18原则(开发设计阶段)
其实,MongoDB和 SQL Server 、MySQL 、Oracle 一样,一个 数据库对象的设计调整、索引的创建、语句的优化,都会对性能产生巨大的影响。(6) TTL 索引(time-to-live index,具有生命周期的索引),使用TTL索引可以将超时时间的文档老化,一个文档到达老化的程度之后就会被删除。在稀疏索引中,只有包含了索引键值的文档才会出现。(16) 查询中的某些$操作符可能会导致性能低下,如$ne,$not,$exists,$nin,$or,尽量在业务中不要使用。原创 2024-09-28 23:35:29 · 481 阅读 · 0 评论 -
关于MongoDB数据库的日志解析
另外还有一点需要特别指出,我们有时候会通过db.getLogComponents() 看到级别日志级别为-1,其实-1,代表和其父类别的等级一样。其实是可以的,我们只需要在初始配置文件中加入相应的参数就可以了,在此不再展开。MongoDB日志记录了数据库实例的健康状态、语句的执行状况、资源的消耗情况,所以日志对于分析数据库服务和性能优化很有帮助。存储相关信息,例如将 storage 层的数据刷入磁盘的信息。例如,我们将query类别的日志的详细级别设置为父类(记录控制管理相关的信息,例如数据库初始化。原创 2024-09-28 23:32:35 · 661 阅读 · 0 评论 -
实现MongoDB读写分离的“读偏好”介绍
当选择了使用maxStalenessSeconds进行读操作的服务端,客户端会通过比较从节点和主节点的最后一次写时间来估计从节点的过期程度。如果没有主节点,客户端使用从节点间的最近一次写操作来比较。在某些情况下,将读请求发送给副本集的备份节点是合理的,例如,单个服务器无法处理应用的读压力,就可以把查询请求路由到可复制集中的多台服务器上。premaryPreferred — 设置了此参数的驱动会从主节点读取数据,除非某些原因使主节点不可用或者没有主节点,此时它会从从节点读取数据。可以是主节点也可以是从节点。原创 2024-09-28 23:27:09 · 240 阅读 · 0 评论 -
MongoDB分片 在部署和维护管理 中常见事项的总结
是MongoDB将大型集合分割到不同服务器(或者说集群)上所采用的方法,主要为应对高吞吐量与大数据量的应用场景提供了方法。和既有的分库分表、分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同服务器之间的均衡。原创 2024-09-28 23:22:21 · 505 阅读 · 0 评论