CallMe_DD 2023-03-07 16:22 采纳率: 63.2%
浏览 20

MySQL添加不等于条件后查询时间翻了至少10倍

SELECT
  一堆明细数据
FROM
  明细表
  LEFT JOIN 单据表
  LEFT JOIN 项目表
  LEFT JOIN 明细关联组织的id表
  LEFT JOIN  公司组织结构表
WHERE
  明细.`status` = 0 -- 明细状态为正常
  and 单据.`status` = 0; -- 单据状态为正常

以上语句执行时间大概是1分钟,如果加上了部门ID != "某部门ID"的条件之后,查询时间直接翻了10倍以上,这是为什么啊?

  • 写回答

4条回答 默认 最新

  • 「已注销」 2023-03-07 16:35
    关注

    “Devil组”引证GPT后的撰写:

    • 在SQL查询语句中添加额外的条件会导致查询变得更加具体,但是也可能会导致查询的性能变差。当在查询中添加额外的条件时,数据库需要进行更多的筛选和匹配操作,这可能会增加查询的运行时间。
    • 在这个例子中,如果添加了一个额外的条件 部门ID != "某部门ID",这个条件需要查询明细关联组织的id表和公司组织结构表,这可能会导致查询需要更多的时间来处理所有的表格关联和匹配操作,因此查询的执行时间会变长。
    • 另外,可以尝试优化查询的性能。例如,您可以使用索引来加速查询的执行时间,或者使用更具体的条件来缩小查询范围。也可以使用查询分析工具来确定查询中的性能瓶颈所在,并进行进一步的优化。
    评论

报告相同问题?

问题事件

  • 创建了问题 3月7日

悬赏问题

  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物