通过sqlalchemy在MySql上运行的查询比在DB cons上运行慢得多

2024-05-14 07:19:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大量的SQL代码在我们的数据库上运行。为了使其可读,我将其结构化为大量的临时表,这些表是在每次需要运行查询时创建的。在

当测试这些查询时,我在Sequel Pro中针对数据库运行它们,虽然速度不快,但运行大约需要一分钟。在

然后,我将这些相同的查询(大多数查询只是说createtemporarytablex(INDEX(blah))作为(selectsomecrazystuff);)并在python脚本中通过sqlalchemy运行它们,它们大约需要15-20分钟。在

我不知道为什么会发生这种情况,但是使用python脚本进行测试会很尴尬,最后我在sequelpro中完成了大部分开发工作,并在以后保存了它。在

有什么想法吗?在


Tags: 代码脚本数据库sqlindexsqlalchemy情况速度
1条回答
网友
1楼 · 发布于 2024-05-14 07:19:27

第一个想法:把sqlalchemy从图片中去掉,试着通过mysql python运行查询。SQLAlchemy主要用于构造SQL语句,然后通过mysql python刷新这些语句;因为您是手工构建的,所以要消除可能的开销来源。在

第二个问题是服务器在做什么。根据它使用的引擎,您可以将所有查询转储到日志文件(请参见http://www.howtogeek.com/howto/database/monitor-all-sql-queries-in-mysql/) 或者如果您使用的是InnoDB表,SHOW ENGINE INNODB STATUS。您需要确保当查询从SQLAlchemy和Sequel Pro访问服务器时,它们实际上是相同的。在

相关问题 更多 >

    热门问题