当前位置: 首页 > 面试题库 >

MySQLdb的结果集非常慢

龚运乾
2023-03-14
问题内容

我在phpMyAdmin和MySQLdb(python)中都执行了以下查询。

SELECT *, (SELECT CONCAT(`id`, '|', `name`, '|', `image_code`)
FROM `model_artist` WHERE `id` = `artist_id`) as artist_data, 
FIND_IN_SET("metallica", `searchable_words`) as find_0
FROM `model_song` HAVING find_0

phpMyAdmin表示查询耗时2 毫秒 。我的python代码说,使用MySQLdb进行查询需要 848毫秒 (甚至没有获取结果)。

python代码:

self.db = MySQLdb.connect(host="localhost", user="root", passwd="", db="ibeat")
self.cur = self.db.cursor()

millis = lambda: time.time() * 1000

start_time = millis()
self.cur.execute_cmd("""SELECT *, (SELECT CONCAT(`id`, '|', `name`, '|', `image_code`)
FROM `model_artist` WHERE `id` = `artist_id`) as artist_data, 
FIND_IN_SET("metallica", `searchable_words`) as find_0
FROM `model_song` HAVING find_0""")
print millis() - start_time

问题答案:

PHPMyAdmin限制了所有查询,因此您不会在界面中返回较大的结果集。因此,如果您的查询通常返回1,000,000行,而PHPMyAdmin将其减少到1,000(或默认值),那么当Python抓取甚至查询整个结果集时,您将不得不期望更长的处理时间。

尝试在Python中放置一个与PHPMyAdmin上的限制匹配的限制以比较时间。



 类似资料:
  • 在我的存储过程中,我返回13个表。在ManagementStudio中,执行proc大约需要150ms-250ms,这很好。在我的asp。net核心(c#)项目,我用该过程填充数据集,在这里,通过sqldataadapter填充数据集需要20秒甚至35秒。有谁能帮我优化一下,这样数据就可以快速填充了。下面是代码

  • 我正在对一个小表执行一个简单的查询 系统表只有三列(Id、Name、Progress)和1300行。 我获取数据的代码是: 这段代码在JTable中显示日期大约需要15秒,而如果在phpmyadmin中执行查询,则需要不到1秒。

  • 我有这样的代码 我试图与kategorikode_kategori,但出现错误,请帮助我

  • 问题内容: 我想在列表中获取fetchall操作的结果,而不是元组的tuple或字典的元组。例如, 现在,问题是结果行是(((123,),(234,))或({‘id’:123},{‘id’:234})我正在寻找的是(123,234)或[ 123,234]。如果可以保存解析结果,那就最好了。提前致谢 问题答案: 那么列表理解呢?如果结果为: 如果结果为

  • 我已经在Python中通过,它们看起来都非常相似。为什么?如何随机化它们?

  • 问题内容: 我希望将空结果集的总计设置为0。我尝试了以下方法: 结果: 子问题:上面的工作在Oracle中行不通吗? 问题答案: 在有关聚合函数的文档页面中: 应该注意的是,除了这些函数, 当没有选择任何行时 ,这些函数将 返回空值 。特别是,没有行返回空值,而不是预期的零值。必要时,该函数可用于将零替换为null。 所以,如果你想保证返回的值,适用于 结果 的,而不是它的参数: 至于Oracle

  • 我做了一个简单的科学测验java应用程序,有4个框架:登录、菜单、测试和结果。 前三个帧工作正常,但当我单击显示结果时,它显示错误。这是我在Test JFrame中的代码。如果您愿意,我也可以发送其他帧的编码 这是我的错误 测试JFrame编码

  • 我在项目中使用Spring数据JPA。当我要求一份特定导演制作的电影列表时,我得到: 电影拍摄地点: 董事报告人: 人员存储库: 电影控制器: 我不明白为什么当sql查询一切正常工作时,但是当使用表达式搜索存储库时,它却不能正常工作。在阅读了类似的问题后,我没有找到任何解决我问题的东西。 董事实体: 个人实体: 电影实体: