Python的MySQLdb很慢!使用'SSCurso'r与PHP的'mysql_fetch_assoc'

时间:2011-08-18 17:35:37

标签: php python mysql-python

我需要在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,我可以使用什么来获得更好的性能/相同的功能?

2 个答案:

答案 0 :(得分:0)

你是否将python结果打印到stdout? 因为如果要将所有数据打印到stdout(控制台),我会期待这种性能差异。 PHP代码通常在没有stdout输出的情况下运行到控制台。问题是输出到控制台涉及计算机必须在窗口实时滚动文本时绘制和移动数百万像素。

如果不是这样,那么看起来MySQLdb确实在吸吮,你应该提供更多信息,这样人们就可以找到一种方法来为你选择合适的东西。

答案 1 :(得分:-2)

您可以使用SQLAlchemy模块。您可以优化查询,以获得更好的内存和CPU使用率。

参考http://www.sqlalchemy.org/features.html