gpt4 book ai didi

python - 通过 sqlalchemy 针对 MySql 运行的查询比在数据库控制台上慢得多

转载 作者:行者123 更新时间:2023-11-30 00:45:40 25 4
gpt4 key购买 nike

我有大量针对数据库运行的 SQL 代码。为了使其可读,我将其构造为大量临时表,每次需要运行查询时都会创建这些临时表。

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

然后,我采用这些相同的查询(其中大部分只是说 CREATE TEMPORARY TABLE x (INDEX(blah)) AS (SELECT somecrazystuff); )并通过 sqlalchemy 在 python 脚本中运行它们,它们接近 15-20分钟。

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

有什么想法吗?

最佳答案

第一个想法:将 sqlalchemy 从图中剔除,尝试通过 mysql-python 运行查询。 SQLAlchemy 主要用于构建 SQL 语句,然后通过 mysql-python 刷新这些语句;由于您是手动构建它们,因此请消除可能的开销来源。

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

关于python - 通过 sqlalchemy 针对 MySql 运行的查询比在数据库控制台上慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com