1.什么是mongodb?
mongodb是一个基于分布式文件存储的Nosql数据库,是一种文档型数据库,适合存储海量数据和提供可扩展的高性能数据存储。
2.三要素?
数据库databas、集合collection、文档
3.mongodb和mysql的区别?
缺点:
<1>稳定性:mongodb是新型数据库,不太稳定
<2>对事务支持较弱
<3>占的空间很大,若集合更新比较多,则会使得填充因子(默认为1,mongodb自己改变这个值)自动变大,而且在更新时会出现碎片,需要定期维护。
<4>索引放在内存中,可以提高随机读写性能,若不能放在内存中,读写较高时会进行频繁的磁盘交换,性能下降。
优点:
<1>适合数据格式不明确或者数据格式经常变的需求
<2>自带分布式文件系统,可以方便的部署到服务器集群。
<3>自带mapreduce框架,利于各种统计分组等。
4.解释器?
解释器可以用在查询语句之后,
db.users.find({"id":8}).explain();
显示一些信息,
cursor:使用过的索引;
isMultiKey:是否用了多键索引;
n:返回的文档数量;
nScanedObjects:按照索引指针去磁盘查找实际文档的次数;
nscaned:使用了索引,就是查找过的索引条目数,否则就是查过的文档数;
scanAndOrder:是否在内存中对结果集排序;
nYields:为了让写入请求能顺利执行,本次查询暂停的次数;
millis:本次查询耗时;
indexBounds:索引的遍历范围。
可以用于数据库操作的优化。
4.名字空间
数据库名加集合名即为名字空间。
5.如何执行事务和加锁?
mongodb设计为轻量高性能,没有传统的锁和事务。
6.存储结构
存储的对象为bson,类似于json的二进制文件,有键值对组成。Bson和json一样都支持内嵌文档和数组,而且支持json不支持的Date和BinDate。