2010-07-06 485 views
0

我正在编写用于导出某些数据的脚本。Python MySQL性能:在mysql命令行中运行速度很快,但用cursor.execute运行速度很慢

关于环境的一些细节:

  • 该项目的Django基于
  • 我使用原/自定义SQL的出口
  • 数据库引擎是MySQL的。
  • 数据库和代码都在有关SQL相同box.-

详情:

  • 内一堆加入
  • 选择A柱的一堆,有的一个基本的乘法计算。
  • SQL结果大约有55K行

当我运行在mysql命令行的SQL语句,它需要3-4秒

当我在我的python脚本行光标运行SQL .execute(sql,[id])超过60秒。

关于可能导致此问题的任何想法?

回答

0

两个想法:

  1. MySQL可能已经启用查询缓存,这使得当你重复运行相同的查询很难得到准确的计时。尝试更改查询中的ID以确保它确实在3-4秒内始终运行。

  2. 尝试在python进程上使用strace来查看它在这段时间内正在做什么。

相关问题