【sql速度】

请问大家,这个sql总共70行数据,加上where 条件 速度巨慢,注释这个where条件 速度毫秒级。id字段加了索引。

请问如何再需要where的条件下,优化sql速度?

image.png

SQL ran1025 发布于 2022-12-6 15:12
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
牛~~~Lv6中级互助
发布于2022-12-6 15:15

这个 in 里面的值,用子查询替代看看吧

  • ran1025 ran1025(提问者) 刚刚试了,速度很快了。这大概是什么原理?
    2022-12-06 15:19 
  • 牛~~~ 牛~~~ 回复 ran1025(提问者) in 这个写法是有限制的。越多越影响性能。如果非要使用就是楼下说的用 exists 替代。否则用子查询会快很多
    2022-12-06 15:23 
  • ran1025 ran1025(提问者) 回复 牛~~~ 改成子查询确实快了。为啥子查询就会快速呢?
    2022-12-06 15:26 
  • 牛~~~ 牛~~~ 回复 ran1025(提问者) 了解更多的话,你就百度对应的数据库看看吧。涉及些许底层原理
    2022-12-06 15:26 
  • ran1025 ran1025(提问者) 回复 牛~~~ 谢谢
    2022-12-06 15:34 
最佳回答
0
snrtuemcLv8专家互助
发布于2022-12-6 15:16

如果数据多,建议用exists替代in

参考

https://blog.csdn.net/tanghuan0827/article/details/110823672

  • ran1025 ran1025(提问者) 数量小
    2022-12-06 15:18 
  • snrtuemc snrtuemc 回复 ran1025(提问者) 你说注释会快,是不是这个表里面很多数据量,减少in的条件数量,看看效果
    2022-12-06 15:21 
  • ran1025 ran1025(提问者) 回复 snrtuemc 把 in条件 改成2个【t1.id in (1589,3465) 】 依然很慢~~
    2022-12-06 15:25 
  • 3关注人数
  • 309浏览人数
  • 最后回答于:2022-12-6 15:16
    请选择关闭问题的原因
    确定 取消
    返回顶部