MONGODB 最近测试结果的简单记录
测试目的:随着集合数据量的增大,查询效率会不会降低测试了300W,1000W,5000W,一亿,三亿,五亿数据量
测试结果:MONGO的表现非常稳定,每秒的查询次数保持在84000到86000之间,随着数据量的增大,查询效率没有明显的下降
表结果:
> db.dnscoll.find()
{ "_id" : "Hcpp07cOXO1", "id2" : "000000000000000002", "id3" : "serverId", "id1" : "48545884402" }
{ "_id" : "igD4uZGWty3", "id2" : "000000000000000003", "id3" : "serverId", "id1" : "23878046284" }
{ "_id" : "g0pvRKGPn45", "id2" : "000000000000000004", "id3" : "serverId", "id1" : "82622388586" }
{ "_id" : "b6TuOm274H7", "id2" : "000000000000000005", "id3" : "serverId", "id1" : "74870401868" }
{ "_id" : "Q7yYbmIRag9", "id2" : "000000000000000006", "id3" : "serverId", "id1" : "600664002610" }
查询语句:依据id2作为查询条件,返回所有值
平均行长110个字节
5G数据量下, 表的大小50G,三个索引大小_id 25G,,id2 17G id1 17G
{
"ns" : "dnsdb.dnscoll",
"count" : 499999999,
"size" : 52790399288,
"avgObjSize" : 105.5807987871616,
"storageSize" : 62862102144,
"numExtents" : 50,
"nindexes" : 3,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1,
"systemFlags" : 0,
"userFlags" : 0,
"totalIndexSize" : 64073529632,
"indexSizes" : {
"_id_" : 27570567584,
"id2_1" : 18168911600,
"id1_1" : 18334050448
},
"ok" : 1
}
每个索引的创建时间6个半小时
在2.4.6下索引创建的 background参数没有效果,依然阻塞本database的查询、写入操作。不知道其他 版本有没有这个问题
数据预热的方法:
移动数据文件到内存 for file in /data/db/route.* do dd if=$file of=/dev/null done
移动集合到内存 use route db.runCommand({"touch" : "bc", "data" : true, "index" : true})
前两种方式都不会再mongostat的res里看到 如何预热一个索引 db.users.find({}, {"_id" : 0, "friends" : 1, "date" : 1}). hint({"friends" : 1, "date" : 1}).explain()
来自 “ ITPUB博客 ” ,链接:/,如需转载,请注明出处,否则将追究法律责任。
转载于:/
MONGODB 最近测试结果的简单记录
测试目的:随着集合数据量的增大,查询效率会不会降低测试了300W,1000W,5000W,一亿,三亿,五亿数据量
测试结果:MONGO的表现非常稳定,每秒的查询次数保持在84000到86000之间,随着数据量的增大,查询效率没有明显的下降
表结果:
> db.dnscoll.find()
{ "_id" : "Hcpp07cOXO1", "id2" : "000000000000000002", "id3" : "serverId", "id1" : "48545884402" }
{ "_id" : "igD4uZGWty3", "id2" : "000000000000000003", "id3" : "serverId", "id1" : "23878046284" }
{ "_id" : "g0pvRKGPn45", "id2" : "000000000000000004", "id3" : "serverId", "id1" : "82622388586" }
{ "_id" : "b6TuOm274H7", "id2" : "000000000000000005", "id3" : "serverId", "id1" : "74870401868" }
{ "_id" : "Q7yYbmIRag9", "id2" : "000000000000000006", "id3" : "serverId", "id1" : "600664002610" }
查询语句:依据id2作为查询条件,返回所有值
平均行长110个字节
5G数据量下, 表的大小50G,三个索引大小_id 25G,,id2 17G id1 17G
{
"ns" : "dnsdb.dnscoll",
"count" : 499999999,
"size" : 52790399288,
"avgObjSize" : 105.5807987871616,
"storageSize" : 62862102144,
"numExtents" : 50,
"nindexes" : 3,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1,
"systemFlags" : 0,
"userFlags" : 0,
"totalIndexSize" : 64073529632,
"indexSizes" : {
"_id_" : 27570567584,
"id2_1" : 18168911600,
"id1_1" : 18334050448
},
"ok" : 1
}
每个索引的创建时间6个半小时
在2.4.6下索引创建的 background参数没有效果,依然阻塞本database的查询、写入操作。不知道其他 版本有没有这个问题
数据预热的方法:
移动数据文件到内存 for file in /data/db/route.* do dd if=$file of=/dev/null done
移动集合到内存 use route db.runCommand({"touch" : "bc", "data" : true, "index" : true})
前两种方式都不会再mongostat的res里看到 如何预热一个索引 db.users.find({}, {"_id" : 0, "friends" : 1, "date" : 1}). hint({"friends" : 1, "date" : 1}).explain()
来自 “ ITPUB博客 ” ,链接:/,如需转载,请注明出处,否则将追究法律责任。
转载于:/
发布评论