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也是一样的慢。