欢迎大家光顾我的淘宝店:点击进入
1 显示创建集合
db.createCollection("c1");
db.c1.drop();
db.c1.stats(); 查看集合的状态
db.system.indexes.find(); 查看数据库中所有索引
2 Capped Collection 固定集合
属性1 对固定集合进行插入速度极快
属性2 按照插入顺序的查询输出速度极快
属性3 能够在插入最新数据时,淘汰最早的数据。
用法1 储存日志信息。
用法2 缓存一些少量的文档。
3 固定集合的使用
创建固定集合 db.createCollection("c2",{capped:true,size:10000,max:5});
普通集合转固定集合 db.ranCommand(convertToCapped:"c1",size:100000,max:3);
4 GridFS使用两个表来存储数据:
files 包含元数据对象
chunks 包含其他一些相关信息的二进制块
三个命令:put(存储), get(取得),list(列表)
具体应用:mongofiles put testfile ---上传文件
mongofiles list----查看库里有那些GridFS文件
进入库里看一下是否有新的东西:
> show collections
fs.chunks
fs.files
继续查看fs.files中的内容
db.fs.files.find()
各个参数:Filename:存储的文件名
chunkSize:chunks分块的大小
uploadDate:入库时间
md5 :此文件的md5码
length 文件大小,单位是字节
fs.files中存储的是一些基础的元素信息
>db.fs.chunks.find()
_id:块自身的id
file_id:包含这个块的元数据库文档文件id
n:代表的是chunks的序号,此序号从0开始
data:组成文件块的二进制文件
fs.chunks中存储的是一些师姐的内容数据信息
5 查看文件的md5值
md5sum mongosniff.tar.gz
6 索引的建立
例子:在name上建立索引 1(升序),-1(降序)
>db.persons.ensureIndex({name:1});
当系统已有大量数据时,创建索引非常耗时,需要在后台执行,只需要指定 “background:true”
>db.ts.ensureIndex({age:1},{background:true})
db.c1.getIndexKeys();//索引清单
db.c1.getIndexes();
7唯一索引
只需要ensureIndex命令中指定"unique:true"即可创建唯一索引。
比如:
>db.c1.ensureIndex({firstname:1,lastname:1},{unique:true});
注意:如果表中有两条一样的数据,就建立不了唯一索引。
删除索引:db.c1.dropIndex({age:1})
删除集合中所有的索引:db.c1.dropIndexes();但是不删除_id上的索引。
8 explain执行计划
explain命令让我们获知系统如何处理查询请求。
利用explain命令,我们可以很好的观察系统如何使用索引来加快检索,同时可以针对性能化索引。
9优化器 profile
MongoDB Databse Profiler是一种慢查询日志功能,可以作为我们优化数据库的依据。
查询是否已经开启:db.getProfilingLevel();
0表示没有开启,1表示开启
用命令:db.setProfilingLevel(1);开启慢查询日志
优化方案
优化方案1 :创建索引
优化方案2:限定返回结果条数
优化方案3:查询使用到的字段,不查询所有字段。
优化方案4:采用apped collection
优化方案5 采用Profiling慢查询日志
性能监控:
Mongosniff --source net lo