1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MongoDB学习笔记(四)--索引 性能优化

MongoDB学习笔记(四)--索引 性能优化

时间:2021-11-13 21:31:52

相关推荐

MongoDB学习笔记(四)--索引  性能优化

索引

基础索引

用到ensureIndex方法建立索引,1为升序,-1为降序。

MongoDB数据库在创建集合的时候,默认会为_id创建索引。

注:当系统已有大量数据时,创建索引就是一个非常耗时的工作,只需要指定backgroud:true即可。

db.yyd.ensureIndex({"name":1},{"backgroud:true"})

文档索引

注:下面的查询将不会用到索引,因为查询的顺序与索引建立的顺序不一样。

db.yyd.find({"address":{"short":"CD","city":"chengdu"}})

组合索引

此时,无论city和short的顺序是前是后,都会用到索引。

删除索引

为了后面方便查看,先把刚才建立的索引删除掉。

唯一索引

这里的唯一索引就像非NoSQL数据库里面的主键一样。如果集合中有重复的值,系统会报错。

强制使用索引

先向里面插入数据,使name和age为索引,当查询的时候用explain()方法来查看查询所用到的索引indexBounds参数。由上图看出,没用到索引。

现在通过hint命令强制使用索引。

索引名称

索引的名称是默认取好了的,一般是“索引_1”这样的,当然也可以自己设置索引的名字。

db.yyd.ensureIndex({"name":1},{"name":"index_name"})

优化器profiler

profiler相当于MySQL中的慢查询日志,但是比慢查询日志更详细。

使用profiler优化器就必须先开启它,在mongoDB中有两种方法控制profiler的开关和级别。

方法一:

在启动服务的时候加上 –profiler 参数,通过这个参数来设置profiler的级别。

方法二:

db.setProfilingLevel(level,slowms)

在客户端调用setProfilingLevel()方法。

level为级别,0代表不开启,1代表记录慢命令(默认100ms),3代表记录所有命令。

slowms代表慢命令执行的时间,超过这个时间将写入日志中。

查询profiler日志

db.system.profile.find()show profile

性能优化

创建索引限定返回结果数只查询使用到的字段,而不查询所以字段采用capped集合采用Server Side Code Executionhint采用profilingmongosniff底层监控

mongosniff --source NET lo

mongostat查看运行中的实例统计信息

mongostat

db.serverStatus查看实例运行状态

>db.serverStatus()

db.stats查看数据库状态

>db.stats()

《MongoDB学习笔记(三)--权限 && 导出导入备份恢复 && fsync和锁》 传送门 /yydcdut/p/3558446.html

《MongoDB学习笔记(五)--复制集 && sharding分片》 传送门/yydcdut/p/3564470.html

转载请注明出处:/yydcdut/p/3563704.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。