Tôi phát hiện mongodb cách đây vài tháng, và sau khi đọc post, tôi nghĩ mongodb thực sự nhanh hơn mysql, vì vậy tôi quyết định xây dựng băng ghế riêng của mình, vấn đề là tôi không có kết quả tương tự như tác giả của bài viết trên, đặc biệt là để quering cơ sở dữ liệu: mongodb có vẻ chậm hơn so với các bảng MyISAM. bạn có thể có một cái nhìn để mã python của tôi, có thể có cái gì đó sai trong nó:MongoDB không nhanh hơn MySQL?
from datetime import datetime
import random
import MySQLdb
import pymongo
mysql_db=MySQLdb.connect(user="me",passwd="mypasswd",db="test_kv")
c=mysql_db.cursor()
connection = pymongo.Connection()
mongo_db = connection.test
kvtab = mongo_db.kvtab
nb=1000000
thelist=[]
for i in xrange(nb):
thelist.append((str(random.random()),str(random.random())))
t1=datetime.now()
for k,v in thelist:
c.execute("INSERT INTO key_val_tab (k,v) VALUES ('" + k + "','" + v + "')")
dt=datetime.now() - t1
print 'MySQL insert elapse :',dt
t1=datetime.now()
for i in xrange(nb):
c.execute("select * FROM key_val_tab WHERE k='" + random.choice(thelist)[0] + "'")
result=c.fetchone()
dt=datetime.now() - t1
print 'MySQL select elapse :',dt
t1=datetime.now()
for k,v in thelist:
kvtab.insert({"key":k,"value":v})
dt=datetime.now() - t1
print 'Mongodb insert elapse :',dt
kvtab.ensure_index('key')
t1=datetime.now()
for i in xrange(nb):
result=kvtab.find_one({"key":random.choice(thelist)[0]})
dt=datetime.now() - t1
print 'Mongodb select elapse :',dt
Ghi chú:
- cả MySQL và MongoDB đang trên locahost.
- cả MySQL và MongoDB có cột 'chìa khóa' lập chỉ mục
MySQL Bảng:
CREATE TABLE IF NOT EXISTS `key_val_tab` (
`k` varchar(24) NOT NULL,
`v` varchar(24) NOT NULL,
KEY `kindex` (`k`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
phiên bản là:
- MySQL: 5.1.41
- MongoDB: 1.8 .3
- python: 2.6.5
- pymongo: 2.0.1
- Linux: Ubuntu 2.6.32 32bits với PAE
- Phần cứng: máy tính để bàn core i7 2,93 Ghz
Kết quả (đối với 1 triệu chèn/Lựa chọn):
MySQL insert elapse : 0:02:52.143803
MySQL select elapse : 0:04:43.675914
Mongodb insert elapse : 0:00:49.038416 -> mongodb much faster for insert
Mongodb select elapse : 0:05:10.409025 -> ...but slower for quering (thought was the opposite)
Đối với một, MongoDB thích kiến trúc 64 bit. Tôi sẽ không đưa nhiều cổ phiếu vào một điểm chuẩn bởi một người không có kinh nghiệm với một trong những hệ thống được chuẩn hóa. – ceejayoz
đó là lý do tại sao tôi hỏi một số trợ giúp! – Eric
@ceejayoz Nếu bạn phải rất có kinh nghiệm để làm cho nó đi nhanh, sau đó nó sẽ được làm chậm cho hầu hết người dùng. Tôi muốn nói tiêu chuẩn được thực hiện bởi người dùng thiếu kinh nghiệm có thể chỉ là hữu ích ... –