Mongodb
dmcler
这个作者很懒,什么都没留下…
展开
-
Mongodb(1)——存储引擎WiredTiger的使用
DatabaseHolder:负责创建、关闭、获取DB。 Database:Database的入口,是Database的类的实现,提供了Collection的创建销毁接口。 StorageEngine:存储引擎的抽象类,各类存储引擎事实上都是继承于StorageEngine。 KVEngine:KVStorageEngine实际是调用这个类的操作。 WiredTigerKVEngine:KV原创 2016-11-25 11:08:09 · 1404 阅读 · 0 评论 -
【MongoDB】mongoimport mongoexport
mongoexport:将数据导出成JSON格式,与标准的JSON有些不同 参数说明: [root@localhost mongodb]# ./bin/mongoexport –help Export MongoDB data to CSV, TSV or JSON files. options: –help produce help m原创 2017-06-15 19:51:36 · 488 阅读 · 0 评论 -
【MongoDB】mongo复制数据库和集合
1. 复制数据库1.1 db.copyDatabase(fromdb,todb,fromhost,username,password,mechanism)后面四个选项可选:fromhost: 源db的主机地址,如果在同一个mongod实例内可以省略;username: 如果开启了验证模式,需要源DB主机上的MongoDB实例的用户名;password:原创 2017-06-15 19:52:33 · 8311 阅读 · 0 评论 -
【MongoDB】Shard key
1. 使用Shell命令分区MongoDB提供的分区功能,本节简单介绍在mongo shell的分区命令。sh.enableSharding(database) 指定databasesh.shardCollection(namespace, key, unique, options) 指定Collection 【注意】如果库中还没有指定的database则需要顺序执行上面两个命令,如果原创 2017-06-22 19:26:10 · 4880 阅读 · 0 评论 -
【Mongo】MongoDB-Profiler
MongoDB Profiler能够收集MongoDB操作的操作信息,尤其是分析慢操作时的利器。MongoDB Profiler将收集到的数据存到system.profile集合中,它是一个capped collection(固定大小的集合)。Profiling Levels设置Profiler的级别有以下几个选项:0:设置为off,这是默认级别,即关闭profiler。但是mongod始终将执行原创 2017-07-07 19:22:35 · 961 阅读 · 0 评论 -
【MongoDB】explain & hint
执行计划分析 explain()explain()为aggregate()、count()、distinct()、find()、remove()、和update()这些方法提供查询计划分析。使用格式db.collection.explain().还可以通过cursor.explain()和$explain执行。explain(verbosity mode)中可以接以下参数以原创 2017-07-08 13:13:31 · 585 阅读 · 0 评论 -
【MongoDB】如何将MongoDB改造成内存数据库
日前有测试需求将MongoDB改成内存数据库。我们知道MongoDB有一个In-Memory存储引擎,但是社区版不能用。所以我们自己想办法将MongoDB改造成内存数据库,经过探索,有三种方式。 研究版本:mongo-3.4方式一:使用tmpfs作为文件系统方式二:使用ramfs作为文件系统这两种方式的思路都差不多,使用一个内存模拟文件系统,由于替换了磁盘文件系统,数据就保留在内存中。方式三:修改原创 2017-07-11 14:46:41 · 4624 阅读 · 0 评论 -
【MongoDB】查看datasize
想要查看DB和Collecion的datasize可以通过db.stats()和db.collection.stats()db.stats(scale)db.stats(scale) 的参数 scale 指定显示大小的精度,默认是Byte,如果是 db.stats(1024) 则以 KB 显示,以此类推。db.collection.stats(scale | options)db.collectio原创 2017-07-22 17:06:38 · 5733 阅读 · 0 评论 -
【MongoDB】复合索引
MongoDB支持复合索引,所谓复合索引就是一个索引包含多个字段,例如为如下collection建立一个复合索引: collection { user_id: score: …… }db.col.createIndex({‘user_id’ : 1, ‘score’ : -1})有数据库基础的同学对这个也没有什么疑惑,而且应该知道1表示升序,-1表示降序。在MongoDB的复合索引中不原创 2017-09-29 16:25:17 · 892 阅读 · 0 评论 -
【MongoDB】Java驱动读写数组
经常不用就忘了如何操作,记录一笔。写MongoClient client = new MongoClient(host, port);MongoDatabase db = client.getDatabase(testdb);MongoCollection<Document> col = db.getCollection(testcol);String[] color = {"red", "bl原创 2017-08-03 16:20:31 · 1839 阅读 · 1 评论 -
【MongoDB】github版源码编译报错
这个坑踩了好几次了,如果从github下载MongoDB源码,安装docs安装好依赖、scons,编译还是会报错。 解决办法加version.json文件放在代码根目录下 内容为(根据具体版本而定): {“version”:“3.4.2”}原创 2017-07-29 15:40:14 · 1273 阅读 · 0 评论 -
MongoDB优化
MongoDB 3.4 学生党上周有幸参与某公司的MongoDB测试,算是一次实战吧,结合网上的内容和自己的体会总结了以下几点优化:开启profile,这个可以监控执行慢的语句,这样可以分析哪些语句执行较慢;善用mongo提供的工具,如mongostat、mongoCompass等对于执行慢的语句执行explain,更加具体的分析查询信息、查询统计、使用索引等。创建索引,但是索引不宜创建过原创 2017-06-15 19:47:45 · 278 阅读 · 0 评论 -
MongoDB(3)——Index的创建流程1
1. 创建除了用户手动创建索引,系统会为每个Collection建立一个主键索引,下面分析的就是这个主键索引的创建过程。 原来我们说到Collection的创建是在Database的createCollection中开始。进入_getOrCreateCollectionInstance方法,确实有Collection的创建语句。那么Collection的构造函数又干了些什么?从下图可以看到,原创 2017-06-15 19:47:01 · 481 阅读 · 0 评论 -
Mongodb(2)——WiredTiger文件接口
在wiredtiger.h中,定义了各种抽象数据结构,Mongo中WT的抽象层会调用这些抽象结构的函数调用。我们看看文件系统相关的两个抽象数据结构:__wt_file_handle,__wt_file_system。可以看到这里定义了一系列与文件相关的操作,而在不同的操作系统下,会有不同的具体实现对应。原创 2016-11-25 11:48:48 · 895 阅读 · 0 评论 -
【MongoDB】mongo时间问题
这个问题网上的文档很多,纯粹是记录下来免得以后再找。 Mongo3.4 Java Driver 解决8小时时差问题String date = "2017-05-26T02:11:11Z";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");sdf.setCalendar(new GregorianCal原创 2017-06-15 19:45:24 · 1656 阅读 · 0 评论