python - python sqlite 查询的复杂性是否会严重影响 fetchall() 时间?
问题描述
我有一个 sqlite 数据库,它将测试结果存储在多个表中,以便在各种设计的各种修订版上运行测试。我有 python 查询,可以总结测试运行的测试结果,或者可以返回测试运行的完整结果,或者做一些更复杂的事情,比如列出给定设计和修订的每次检查的结果,无论检查来自哪个运行. 这些都快速运行并返回数据。我有一个更复杂的查询(在 sqlite 工具中运行 2 秒左右),它基本上可以找到所有在某个时间点都通过和失败的测试,并且最近的结果是失败。当我使用 cur.execute().fetchall() 在 python 中运行它时,需要 3-5 分钟才能运行。当我把它分解成碎片时, cur.execute() 需要 2 分钟左右,而 fetchall() 步骤需要更长的时间,即使返回的列表大小只有 5 个左右的元素。我的问题是为什么 fetchall() 运行所需的时间与查询的复杂性有关,而不是与返回的数据量有关。此外,为什么通过 cur.execute 查询比直接在 sqlite 工具中运行更长的时间(几分钟与几秒钟相比)会有所帮助。
解决方案
推荐阅读
- javascript - 如何在Javascript中实现刷新状态?
- node.js - 子目录中的 Nuxtjs 和 Nginx 反向代理
- javascript - 尝试在 edureka 上复制 API 教程
- javascript - Google Analytics(分析)客户端 ID 不会进入我表单的隐藏字段
- java - 从前台服务更新 Singleton 成员属性
- python - Python Azure 函数 - 使用 Key Vault 进行 MSI 身份验证
- swift - SwiftUI 绑定对象数组并显示更改
- bazel - 让所有 Bazel 包公开它们的文档文件(或任何具有给定扩展名的文件)
- python - 如何在我的代码中出现这个溢出?
- javascript - npm linq:分组多列