· 8 years ago · Aug 23, 2018, 02:54 PM
1MongoDB not that faster than MySQL?
2from datetime import datetime
3import random
4import MySQLdb
5import pymongo
6
7mysql_db=MySQLdb.connect(user="me",passwd="mypasswd",db="test_kv")
8c=mysql_db.cursor()
9
10connection = pymongo.Connection()
11mongo_db = connection.test
12kvtab = mongo_db.kvtab
13
14nb=1000000
15thelist=[]
16for i in xrange(nb):
17 thelist.append((str(random.random()),str(random.random())))
18t1=datetime.now()
19
20for k,v in thelist:
21 c.execute("INSERT INTO key_val_tab (k,v) VALUES ('" + k + "','" + v + "')")
22
23dt=datetime.now() - t1
24print 'MySQL insert elapse :',dt
25
26t1=datetime.now()
27for i in xrange(nb):
28 c.execute("select * FROM key_val_tab WHERE k='" + random.choice(thelist)[0] + "'")
29 result=c.fetchone()
30
31dt=datetime.now() - t1
32print 'MySQL select elapse :',dt
33
34
35t1=datetime.now()
36
37for k,v in thelist:
38 kvtab.insert({"key":k,"value":v})
39
40dt=datetime.now() - t1
41print 'Mongodb insert elapse :',dt
42kvtab.ensure_index('key')
43t1=datetime.now()
44for i in xrange(nb):
45 result=kvtab.find_one({"key":random.choice(thelist)[0]})
46
47dt=datetime.now() - t1
48print 'Mongodb select elapse :',dt
49
50CREATE TABLE IF NOT EXISTS `key_val_tab` (
51 `k` varchar(24) NOT NULL,
52 `v` varchar(24) NOT NULL,
53 KEY `kindex` (`k`)
54) ENGINE=MyISAM DEFAULT CHARSET=latin1;
55
56MySQL insert elapse : 0:02:52.143803
57MySQL select elapse : 0:04:43.675914
58Mongodb insert elapse : 0:00:49.038416 -> mongodb much faster for insert
59Mongodb select elapse : 0:05:10.409025 -> ...but slower for quering (thought was the opposite)
60
61MySQL insert elapse : 0:02:52.143803
62Mongodb insert elapse : 0:00:49.038416 -> mongodb much faster for insert
63
64MySQL select elapse : 0:04:43.675914
65Mongodb select elapse : 0:05:10.409025 -> ...but slower for quering (thought was