我想从安全性和数据量这两个方面进行阐述。mysql
mongodb与mysql命令对比 传统的关系数据库通常由数据库(database)、表(table)、记录(record)三个层次概念组成,sql
MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。mongodb
MongoDB对于关系型数据库里的表,可是集合中没有列、行和关系概念,这体现了模式自由的特色。数据库
MongoDB自己它还算比较年轻的一个产品,因此它的问题,就是成熟度确定没有传统MySQL那么成熟稳定。因此在使用的时候,安全
第一,尽可能使用稳定版,不要在线上使用开发版,这是一个大原则;性能
另一点,备份很重要,MongoDB若是出现一些异常状况,备份必定是要能跟上。除了经过传统的复制的方式来作备份,离线备份也仍是要有,无论你是用什么方式,都要有一个完整的离线备份。每每最后出现了特殊状况,它能帮助到你;对象
另外,MongoDB性能的一个关键点就是索引,索引是否是能有比较好的使用效率,索引是否是可以放在内存中,这样可以提高随机读写的性能。若是你的索引不能彻底放在内存中,一旦出现随机读写比较高的时候,它就会频繁地进行磁盘交换,这个时候,MongoDB的性能就会急剧降低,会出现波动。索引
另外,MongoDB还有一个最大的缺点,就是它占用的空间很大,由于它属于典型空间换时间原则的类型。那么它的磁盘空间比普通数据库会浪费一些,并且到目前为止它尚未实如今线压缩功能,在MongoDB中频繁的进行数据增删改时,若是记录变了,例如数据大小发生了变化,这时候容易产生一些数据碎片,出现碎片引起的结果,一个是索引会出现性能问题,内存
另一个就是在必定的时间后,所占空间会莫明其妙地增大,因此要按期把数据库作修复,按期从新作索引,这样会提高MongoDB的稳定性和效率。在最新的版本里,它已经在实如今线压缩,估计应该在2.0版左右,应该可以实如今线压缩,能够在后台执行如今repair DataBase的一些操做。若是那样,就解决了目前困扰咱们的大问题。开发