我需要在Python中遍历整个表。我通过'SSCursor'使用MySQLdb,它比PHP的东西慢得多。
PHP 5.3.5$result = mysql_query("SELECT * FROM anytable");
while($row = mysql_fetch_assoc($result)){
#do stuff
}
Python2.7
cursor.execute("SELECT * FROM anytable")
for row in cursor:
pass
结果PHP: 5秒 CPU约35%,Python: 25秒 CPU 100%
MySQLdb只是糟糕还是我做错了什么?如果是MySQLdb,我可以用什么来代替更好的性能/相同的功能?
是否将python结果打印到stdout?因为如果您将所有数据打印到stdout(控制台),我预计会出现这种性能差异。PHP代码运行时通常不会向控制台输出标准输出。问题是,输出到控制台涉及到计算机必须绘制和移动数以百万计的像素,因为文本在窗口实时滚动。
如果不是这样,那么看起来MySQLdb确实很糟糕,你应该输入更多的信息,这样人们就可以找到一个工作来为你优化。
可以使用SQLAlchemy模块。您可以优化您的查询,以获得更好的内存和cpu使用。
参考: http://www.sqlalchemy.org/features.html