MongoDB 1000W级数据 Insert和Query和Delete性能测试(分别测试 不加索引 和 加索引)
2012-03-26 00:00
721 查看
先看下测试机性能(64bit):
测试程序:
不加索引测试:
......................# MongoDB 不加索引 插入1000W条测试 #...................
......................# MongoDB 不加索引 1000W条遍历测试 #...................
我们让MongoDB全部遍历一遍:
让测试数据倒序,取倒序后第一条数据:
第一条数据的NewsId为
dgvshdhevmjgunvbepgdkzirqk
测试程序:
......................# MongoDB 不加索引 1000W条删除测试 #...................
......................# MongoDB 不加索引 1000W条删除最后一条测试 #...................
加索引测试:
......................# MongoDB 加索引 插入1000W条测试 #...................
......................# MongoDB 加索引 1000W条测试遍历测试 #...................
还是一样取最后一条数据,然后看下性能:
......................# MongoDB 加索引 删除1000W条测试 #...................
......................# MongoDB 加索引 1000W中删除一条测试 #...................
总结下测试数据吧:
没索引
添加 1 千万 记录 Time:207s:194125μs
查询 5.846s
删除全部 103.94s
删除最后一条 3.991s
有索引
添加 1 千万 记录 Time:2019s:19419μs
查询 0.022s
删除全部 570.782s
删除最后一条 0.025s
测试MongoDB版本1.6
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/crazyjixiang/article/details/6630624
^_^[root@:~]#grep "model name" /proc/cpuinfo | cut -f2 -d: Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz Intel(R) Xeon(R) CPU E5606 @ 2.13GHz ^_^[root@:~]#grep MemTotal /proc/meminfo MemTotal: 4040580 kB ^_^[root@:~]# free -m total used free shared buffers cached Mem: 3945 3715 230 0 40 2626 -/+ buffers/cache: 1048 2897 Swap: 4094 2 4092 ^_^[root@:~]#getconf LONG_BIT 64 ^_^[root@:~]#more /etc/redhat-release Red Hat Enterprise Linux Server release 5.5 (Tikanga) ^_^[root@:~]#uname -r 2.6.18-194.el5
测试程序:
#include <iostream> #include <mongo/client/dbclient.h> using namespace std; using namespace mongo; #define INIT_TIME \ struct timeval time1,time2; \ #define START_TIME \ gettimeofday(&time1,NULL); \ #define STOP_TIME \ gettimeofday(&time2,NULL); \ #define PRINT_TIME \ cout<<"Time:"<<time2.tv_sec-time1.tv_sec<<":"<<time2.tv_usec-time1.tv_usec<<endl; int main() { srand(time(NULL)); char ar[26+1]; DBClientConnection conn; conn.connect("localhost"); cout<<"MongoDB Connected OK!"<<endl; int count=10000000; INIT_TIME; START_TIME; //insert #if 1 while (count--) { for (int i=0; i<26; i++) { ar[i] = rand()%26+97; } ar[26]='\0'; BSONObj p = BSON("NewsId"<<ar); conn.insert("test.users",p); } #endif STOP_TIME; PRINT_TIME; return 0; }
不加索引测试:
......................# MongoDB 不加索引 插入1000W条测试 #...................
^_^[root@:~/svn/nugget/MongoDB/utest]#./insertData MongoDB Connected OK! Time:207s:194125μs
......................# MongoDB 不加索引 1000W条遍历测试 #...................
我们让MongoDB全部遍历一遍:
让测试数据倒序,取倒序后第一条数据:
> db.users.find().sort({'_id':-1}) { "_id" : ObjectId("4e2cbdf4a1ca039d82214e33"), "NewsId" : "dgvshdhevmjgunvbepgdkzirqk" }
第一条数据的NewsId为
dgvshdhevmjgunvbepgdkzirqk
测试程序:
^_^[root@:/usr/local/mongodb/bin]#./mongo<bat.js MongoDB shell version: 1.8.2 connecting to: test > var startTime = new Date(); > > db.users.find({NewsId:"dgvshdhevmjgunvbepgdkzirqk"}); { "_id" : ObjectId("4e2ccfd2a1ca039d82527b34"), "NewsId" : "dgvshdhevmjgunvbepgdkzirqk" } > > (new Date().getTime()-startTime.getTime())/1000 5.846s > bye
......................# MongoDB 不加索引 1000W条删除测试 #...................
^_^[root@:/usr/local/mongodb/bin]#./mongo 10.7.3.228 < bat.js MongoDB shell version: 1.8.2 connecting to: 10.7.3.228/test > var startTime = new Date(); > //db.users.find({NewsId:"csgsqdglbyfuwdjfkkrxgzyacc"}); > db.users.remove() > (new Date().getTime()-startTime.getTime())/1000 103.924 > bye
......................# MongoDB 不加索引 1000W条删除最后一条测试 #...................
^_^[root@:/usr/local/mongodb/bin]#./mongo 10.7.3.228 < bat.js MongoDB shell version: 1.8.2 connecting to: 10.7.3.228/test > var startTime = new Date(); > //db.users.find({NewsId:"csgsqdglbyfuwdjfkkrxgzyacc"}); > db.users.remove({"NewsId":"nmffcewwjvbhjfyagfxlifgiud"}) > (new Date().getTime()-startTime.getTime())/1000 3.991 > bye
加索引测试:
> db.users.getIndexes() [ { "name" : "_id_", "ns" : "test.users", "key" : { "_id" : 1 }, "v" : 0 } ] > db.users.ensureIndex({NewsId:1}) > db.users.getIndexes() [ { "name" : "_id_", "ns" : "test.users", "key" : { "_id" : 1 }, "v" : 0 }, { "_id" : ObjectId("4e2cc408572ff09d98851cb7"), "ns" : "test.users", "key" : { "NewsId" : 1 }, "name" : "NewsId_1", "v" : 0 } ]
......................# MongoDB 加索引 插入1000W条测试 #...................
^_^[root@:~/svn/nugget/MongoDB/utest]#./insertData MongoDB Connected OK! Time:2019s:19419μs
......................# MongoDB 加索引 1000W条测试遍历测试 #...................
还是一样取最后一条数据,然后看下性能:
^_^[root@:/usr/local/mongodb/bin]#./mongo <bat.js MongoDB shell version: 1.8.2 connecting to: test > var startTime = new Date(); > > db.users.find({NewsId:"nxuvdqtjrrptoyildolesbkqmd"}); { "_id" : ObjectId("4e2ccc2ea1ca039d82b9e4b3"), "NewsId" : "nxuvdqtjrrptoyildolesbkqmd" } > > (new Date().getTime()-startTime.getTime())/1000 0.022s > bye
......................# MongoDB 加索引 删除1000W条测试 #...................
^_^[root@:/usr/local/mongodb/bin]#./mongo 10.7.3.228 < bat.js MongoDB shell version: 1.8.2 connecting to: 10.7.3.228/test > var startTime = new Date(); > //db.users.find({NewsId:"csgsqdglbyfuwdjfkkrxgzyacc"}); > db.users.remove() > (new Date().getTime()-startTime.getTime())/1000 570.782 > bye
......................# MongoDB 加索引 1000W中删除一条测试 #...................
^_^[root@:/usr/local/mongodb/bin]#./mongo 10.7.3.228 < bat.js MongoDB shell version: 1.8.2 connecting to: 10.7.3.228/test > var startTime = new Date(); > //db.users.find({NewsId:"csgsqdglbyfuwdjfkkrxgzyacc"}); > db.users.remove({"NewsId":"cikjwikamhtixoykrrfjnepkwu"}) > (new Date().getTime()-startTime.getTime())/1000 0.025 > bye
总结下测试数据吧:
没索引
添加 1 千万 记录 Time:207s:194125μs
查询 5.846s
删除全部 103.94s
删除最后一条 3.991s
有索引
添加 1 千万 记录 Time:2019s:19419μs
查询 0.022s
删除全部 570.782s
删除最后一条 0.025s
测试MongoDB版本1.6
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/crazyjixiang/article/details/6630624
相关文章推荐
- MongoDB 1000W级数据 Insert和Query和Delete性能测试(分别测试 不加索引 和 加索引)
- 【转载】MongoDB 1000W级数据 Insert和Query和Delete性能测试
- Mongodb亿级数据量的性能测试(转)
- Mongodb亿级数据量的性能测试
- Mongodb亿级数据量的性能测试(转)
- Mongodb亿级数据量的性能测试-强哥
- Mongodb亿级数据量的性能测试
- Mongodb 之insert瞬时完成,带测试数据---飞天博客
- Mongodb亿级数据量的性能测试
- Mongodb 之insert瞬时完成,测试数据---飞天博客
- mongodb单机1亿数据索引测试
- 大量数据情况下单线程插入和多线程(高并发)insert数据库的性能测试
- Mongodb学习笔记三(Mongodb索引操作及性能测试)
- 大量数据情况下单线程插入和多线程insert数据库的性能测试
- Mongodb百亿级数据添加,修改,删除,查询等性能测试【四】
- discuz 如何添加数据DB::insert和更新数据DB::update 查询DB::query删除DB::delete
- 【原创】MySql的Query和Insert性能测试
- Mongodb亿级数据量的性能测试
- Mongodb亿级数据量的性能测试
- discuz 如何添加数据DB::insert和更新数据DB::update 查询DB::query删除DB::delete