资讯专栏INFORMATION COLUMN

mongo空间预分配

MangoGoing / 2687人阅读

摘要:数据库中的每个集合和索引都有自己的命名空间,每个命名空间的元数据都存放在这个文件里。此处基于这样一个假设,如果总数据大小呈恒定速率增长,应该逐渐增加数据文件分配的空间,这是一种相当标准的分配策略。

在创建数据库时,MongoDB会在磁盘上分配一组数据文件,所有集合、索引和数据库的其他元数据都保存在这些文件里。数据文件都被放置在启动mongod时指定的dbpath里。在未指定dbpath时,mongod会把文件全保存在/data/db里。
garden.ns是第一个生成的文件。文件扩展名ns表示namespaces,意即命名空间。数据库中的每个集合和索引都有自己的命名空间,每个命名空间的元数据都存放在这个文件里。默认情况下,.ns文件大小固定在16 MB,大约可以存储24 000个命名空间。也就是说数据库中的索引和集合总数不能超过24 000。我们几乎不可能使用这么多集合与索引,但如果真有需要,可以使用--nssize服务器选项让该文件变得更大一点。
MongoDB倾向于这种预分配的做法,这能让数据尽可能连续存储。如此一来,在查询和更新数据时,这些操作能更靠近一点,而不是分散在磁盘各处。
在向数据库添加数据时,MongoDB会继续分配更多的数据文件。每个新数据文件的大小都是上一个已分配文件的两倍,直到达到预分配文件大小的上限——2 GB,即garden.2会是256 MB,garden.3是512 MB,以此类推。此处基于这样一个假设,如果总数据大小呈恒定速率增长,应该逐渐增加数据文件分配的空间,这是一种相当标准的分配策略。当然,这么做的后果之一就是分配的空间与实际使用的空间之间会存在很大的差距。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18929.html

相关文章

  • mongo查看数据库空间大小

    摘要:默认是单位返回当前数据库当前数据库多少表当前数据库所有表多少条数据每条数据的平均大小所有数据的总大小所有数据占的磁盘大小索引数索引大小预分配给数据库的文件大小参数可以通过传参数,比如得到的是单位的得到的是单位的所有数据的总大小所有数据占的磁 db.stats db.stats(); 默认是bytes单位返回 { db : xxx, //当前数据库 collectio...

    Elle 评论0 收藏0
  • mongo监控及性能调优

    摘要:命令行方式获取显示当前的用户操作。类似于的可以监控所有慢的以及不慢的查询。以及其他第三方链接性能调优场景现实的首页我们希望现实最近发布的条。自动删除旧文档为了给新文档创建空间,在集合中自动删除老旧的文档,不需要执行额外的脚本和操作。 转载请注明出处 http://www.paraller.com 原文排版地址 http://www.paraller.com/2016/10/22/m...

    fsmStudy 评论0 收藏0
  • 跟着大彬读源码 - Redis 7 - 对象编码之简单动态字符串

    摘要:没有直接使用语言传统的字符串表示以空字符串结尾的字符数组,而是构建了一种名为简单动态字符串的抽象类型,并将用作的默认字符串表示。对比字符串,有几大优点常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时所需的内存重分配次数。 Redis 没有直接使用 C 语言传统的字符串表示(以空字符串结尾的字符数组),而是构建了一种名为简单动态字符串(simple dynamic string)的...

    baishancloud 评论0 收藏0
  • redis数据结构实现--简单动态字符串

    摘要:数据结构实现简单动态字符串简单动态字符串详解是自己实现的一种数据结构,用来作为底层默认字符串,与语言的字符串区别开来。保持和字符串一致以空字符作为结尾是为了能够复用语言的字符串函数库里的函数。 redis数据结构实现--简单动态字符串 1. SDS简单动态字符串详解 sds是redis自己实现的一种数据结构,用来作为redis底层默认字符串,与c语言的字符串区别开来。在redis中c字...

    longmon 评论0 收藏0
  • Spring Boot 中使用 MongoDB 增删改查

    摘要:声明构造函数,作用是把从数据库取出的数据实例化为对象。该构造函数传入的值为从中取出的数据省略接口提供增删改查接口实现提供增删改查接口实现提供了一个类似于的设计的类。 本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查 1、什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。...

    ranwu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<