pyhs(0.2.4) + MySQLdb性能比较
来源:互联网 发布:南通农村商业银行软件 编辑:程序博客网 时间:2024/05/29 16:21
一、环境准备
- 1.MySQL和Handlersocket:percona mysql5.5 + Handlersocket安装与实践
- 2.Python和MySQLdb:linux下MySQLdb模块简便安装
- 3.Python和Handlersocket:pyhs(0.2.4):python2.7+handlersocket
二、性能比较
性能将从数据的删除、插入、查询三个方面进行比较,测试的数据量为10000条。
1、测试表格准备
# 登录MySQL中,在test数据库中创建表格tCREATE TABLE IF NOT EXISTS `test`.`t` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `a` varchar(10) NOT NULL, `b` varchar(10) NOT NULL, PRIMARY KEY (`id`), KEY `a_b` (`a`,`b`)) ENGINE=InnoDB;
2、pyhs(0.2.4)
pyhs_test.py
# -*- coding: utf-8 -*- from pyhs import Managerimport time# This will initialise both reader and writer connections to the default hoststime1 = time.time()hs = Manager()# 插入一条数据到数据库'test',表格't'# insert into test.t (id,a,b) values (1,'a1','b1')# hs.delete('test', 't', [('id', '4')])def insert_db(): for i in xrange(1,10000): hs.insert('test', 't', [('id', str(i)), ('a', 'a'+str(i)), ('b', 'b'+str(i))])# 条件查找,得到一条数据# select * from test.t where id = i;def get_db(): for i in xrange(1,10000): data = hs.get('test', 't', ['id', 'a', 'b'], '%d' % i) # print data# 删除数据# delete from test.t where id > 0def delete_db(): hs.delete('test', 't', '>', ['id', 'a', 'b'], ['0'], limit=10000)time2 = time.time()delete_db()time3 = time.time()insert_db()time4 = time.time()get_db()time5 = time.time()print 'connect time is:\t', time2 - time1print 'delete time is:\t\t', time3 - time2print 'insert time is:\t\t', time4 - time3print 'getdata time is:\t', time5 - time4print 'whole exec time is:\t', time5 - time1
3、MySQLdb
MySQLdb_test.py
import MySQLdbimport timemy_host = '127.0.0.1'my_user = 'root'my_pass = '1234'my_db = 'test'time1 = time.time()db = MySQLdb.connect(host=my_host, user=my_user, passwd=my_pass, db=my_db)cursor = db.cursor(MySQLdb.cursors.DictCursor)def insert_db(): for i in xrange(1,10000): #sql = 'insert into t values(%d, %s, %s)'% (int(i),str(i),str(i)) sql = 'insert into t values(%d'%i sql = sql + ',%s, %s)' #print sql #cursor.execute(sql) cursor.execute(sql,['a'+str(i), 'b'+str(i)]) db.commit()def delete_db(): sql = 'delete from t where id >0' cursor.execute(sql) db.commit()def get_db(): for i in xrange(1,10000): sql = 'select * from t where id = %d'%i cursor.execute(sql) data = cursor.fetchall() # print datadef close(): cursor.close() db.close()time2 = time.time()delete_db()time3 = time.time()insert_db()time4 = time.time()get_db()time_get = time.time()close()time5 = time.time()print 'connect time is:\t', time2 - time1, ' s'print 'delete time is:\t\t', time3 - time2, ' s'print 'insert time is:\t\t', time4 - time3, ' s'print 'getdata time is:\t', time_get - time4, 's'print 'close time is:\t\t', time5 - time_get, ' s'print 'whole exec time is:\t', time5 - time1, ' s'
4、结果与分析
python pyhs_test.pyconnect time is: 4.50611114502e-05delete time is: 0.00116300582886insert time is: 364.271649122getdata time is: 2.5710170269whole exec time is: 366.843874216python MySQLdb_test.pyconnect time is: 0.0189650058746 sdelete time is: 0.127696037292 sinsert time is: 2.96214795113 sgetdata time is: 2.973539114 sclose time is: 6.103515625e-05 swhole exec time is: 6.08240914345 s
分析:可知,pyhs在删除和查找数据较MySQLdb要快,但是插入数据则要慢很多。最重要的查找性能要好13.5%左右。
0 0
- pyhs(0.2.4) + MySQLdb性能比较
- pyhs(0.2.4):python2.7+handlersocket
- python环境测试MySQLdb、DBUtil、sqlobject性能
- MySQLdb
- mysqldb
- MySQLdb
- MySQLdb
- MySQLdb
- MYSQLDB
- 性能比较
- redis2.4与2.6 性能比较
- 坑【4】数组和List性能比较
- 性能比较:事务处理控件
- 性能比较: 事务处理控件
- OLEDB的性能比较
- SQL查询性能比较
- 高端防火墙性能比较
- 比较Map的性能
- MongDB简介与安装配置
- Linux安装MySQL
- 排序算法之冒泡排序
- echarts3 饼图 柱形图 显示数据
- 多个舵机控制
- pyhs(0.2.4) + MySQLdb性能比较
- 一个Android开发工程师的经验总结
- SpringMvc框架下对静态资源的处理
- android中Spinner所遇到的问题
- 异常
- Navicat for MySQL 执行sql文件过程分析(导入数据)
- 人见人爱A^B(快速幂)
- Python 3基础教程8-if else语句
- Android 模块化探索与实践