MongoDB appendix
- mongo 是数据库shell。通常假定它和mongod 运行在同一台机器上,还假定mongod 绑定了默认端口。 eg. mongo staging.example.com:20000,这样就会链接运行在staging.example.com上端口为20000的mongod。 eg. mongo localhost:27017/admin, 链接本地默认端口的mongod,使用admin数据库(默认使用test数据库)。 eg. mongo --nodb, 启动shell而不链接数据库。
- 从shell能够链接任意多个数据库。eg. mongos = connect("localhost:27017") ,connecting to :localhost:27017 ; shard0 = connect("localhost:30000") , connecting to: localhost:30000; shard1 = connect("localhost:30001"), connecting to: localhost: 30001; 随后,mongos、shard0、shard1能够做为db变量使用。
- mongod 核心的数据库服务器。能够做为单个服务器,主从节点、副本集的成员,还能够作片。一般就是所须要的mongoDB进程。
- BSON:mongoDB的文档是个抽象概念。其具体的呈现形式取决于所用的驱动和编程语言。 由于mongoDB中的通讯大量依赖于文档,因此须要一种全部驱动、工具、进程都能共享的文档表达方式。这种表达方式叫BSON(Binary JSON)。
- BSON 是一种轻量的二进制格式。能将mongodb的全部文档表示为字节字符串。数据库能理解BSON。存在磁盘上的文档也是这种格式。
- 当驱动要插入文档,或是将文档做为查询条件,驱动会将文档转换为BSON,而后发往服务器。
- 一样,返回客户端的文档也是BSON格式的字符串。驱动须要将这些数据解码,变成本机的文档表示。最后返回给客户端。
- BSON效率高(更有效的表示数据、占用空间少)、可遍历性(字符串前面加入字符串长度)强、性能好(编码和解码速度快)。
- mongodb 的数据目录中,每一个数据库都有几个独立的文件。一个.ns文件和若干个数据文件,数据文件以递增的数字结尾。每一个新的以数字结尾的数据文件大小会加倍。
- 在数据文件内部,每一个数据库都是按命名空间组织的。一种类别的数据和其它类别的分开存放。 每一个集合的文档都有本身的命名空间。索引也是。命名空间的元数据存放在数据库的.ns 文件中。
- 存储引擎:mongodb默认的存储引擎是内存映射引擎。
- 当服务器启动时,将全部数据文件映射到内存。 而后由操做系统负责将缓冲数据写入磁盘,并将数据调入调出内存页面。 这样的引擎有若干特征:
-
- mongodb 服务器进程的虚拟大小一般会很大。超过了整个数据集的大小。这没有关系,由于操做系统会处理让哪些数据常驻内存。
- mongodb不能控制写入到磁盘的顺序。
- 32位的mongodb服务器有个限制,每一个mongod 最多只能处理2GB数据。由于全部数据必须能用32位地址空间访问到。
- mongodb管理内存的代码很是精炼。由于大部分工做给了操做系统。
欢迎关注本站公众号,获取更多信息