Python3下不同MySQL驱动的性能对比
- 2020 年 2 月 24 日
- 笔记
本文简单对比了一下目前Python中几个常用驱动的性能,包括mysql-connector、mysqlclient和pymysql,三者均遵循Python数据库API规范v2.0 (PEP 249)。
1)mysql-connector 是 MySQL 官方提供的驱动。项目主页:
https://pypi.org/project/mysql-connector-python/
也可从MySQL官网上面下载安装包:
https://dev.mysql.com/downloads/connector/python/
需要注意的是,mysql-connector依赖于dnspython和protobuf,需要一起安装。
2)pymysql是一个流行的使用Python开发的驱动。项目主页:
https://pypi.org/project/PyMySQL/
3)mysqlclient是Python2时代经典驱动MySQLdb的fork版,增加了对python 3的支持,项目主页:
https://pypi.org/project/mysqlclient/
测试环境:

测试方案:
对多个数据量不等的数据库执行查询语句” select * from 表名”,分别执行10次,取均值。
参考代码:

测试结果:

注1:数据量只是影响查询时间的因素之一;
注2:240万数据的对比结果同时还受到内存因素的影响,毕竟此时16G内存已经跑满了。
注3:从性能来看,mysql-connector-python的优势明显,但这是因为使用的whl文件中包含了编译好的dll文件。根据其他文档的介绍,纯python版本的mysql-connector也是一样的慢。
