MongoDB是用C++开发的,主要解决的是海量数据的访问效率问题。根据官方文档记载,当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上。MongoDB的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万~1.5万次读写请求。
数据存储结构
MongoDB内部有预分配空间的机制,每个预分配的文件都用0进行填充,这使MongoDB始终保持额外的空间和空余的数据文件,有效避免了由于数据暴增而带来的磁盘压力过大的问题。如果想避免预分配,可以在mongod启动时,加上参数“--noprealloc”,这样,系统的预分配机制就失效了。
数据文件每分配一次,它的大小都会是上一个数据文件大小的2倍,每个数据文件最大2GB,这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用。
数据库的每张