Python's MySQLdb slow! using 'SSCurso'r vs PHP&#


Python's MySQLdb slow! using 'SSCurso'r vs PHP's 'mysql_fetch_assoc'

我需要在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