原文地址
这篇笔记测试Mysql、Pandas、Python列表的大数据查询性能。
手中有一张72万余行的数据库表,借此机会测试三者的数据查询性能,终于解决内心疑问。
测试环境:Ubuntu 20.04 LTS, Python 3.8.2, Intel® Core™ i7-8750H CPU @ 2.20GHz × 12
原数据有8列,724100行,sql文件大小 65.5 MB
数据表第8列为时间,下面用三种方法分别按时间降序,记录每种方法的用时(每种方法测试3次,取平均值)
一、Mysql
1.测试性能,通过Python调用Mysql
以下为测试源码
测试结果如图
三次取平均值为 0.652s
这只是Python调用Mysql的性能,这和Mysql的真实性能有不同吗?为了避免Python产生的误差,接着再测试一组直接用Mysql查询的性能。
2、测试性能,直接通过Mysql查询
输入如下命令排序查询
首次测试得到的时间如图
测试3次的时间分别为 0.668s、0.664s、0.702s,平均值 0.678s
由此得出,Python调用Mysql 和 直接使用Mysql查询,性能几乎一致,可忽略不计。
二、Pandas
以下为Pandas的测试源码
下面为测试结果
三次取平均值为 0.433s
三、Python列表
以下为Python列表的测试源码
测试结果如下
三次取平均值为 0.064s
四、总结
1.在Python中调用Mysql 和 直接使用Mysql查询,性能几乎一致,可忽略不计。
2.大数据查询性能 Python列表 > Pandas > Mysql
测试数据为,Mysql查询时间 0.652s,Pandas查询时间 0.433s,Python列表查询时间 0.064s
看来Python大数据分析性能很强的~