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