MongoDB 1000W级数据 Insert和Query和Delete性能测试(分别测试 不加索引 和 加索引) 先看下测试机性能(64bit):
- ^_^[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]=" ";
- 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
MongoDB中级---->关联多表查询MongoDB初级相关资讯 MongoDB
- MongoDB 3.3.0 发布下载 (01月14日)
- 使用MongoDB C#官方驱动操作 (12/31/2015 16:27:56)
- CentOS 6.6下安装MongoDB 3.0.1 (12/21/2015 19:29:02)
| - MongoDB 3.2版WiredTiger存储引擎 (01月02日)
- 进程监控工具Supervisor 启动 (12/26/2015 10:49:57)
- MongoDB 3.2.1 RC0 发布下载 (12/18/2015 11:32:29)
|
本文评论 查看全部评论 (0)