OR查询 子查询优化

【 TiDB 使用环境】所有环境
【 TiDB 版本】
【复现路径】加上or之后子查询变慢,执行计划发生改变,有什么方法在两个or不合并的情况下优化or吗,因为or是根据角色权限配置拼接的改动不了
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】






另外,加上一个条件查询就非常非常慢,就多了两千条数据为啥会慢这么多

拆成2个sql再union试试呢

这用的什么工具,界面好漂亮

or连接可能不会走索引,换成unoin连接试试。虽然查询结果多了两千条数据,但是检索的范围可能多了几千万条,不能仅仅从检索结果来判断

看起来很像 idea

免费的吗

肯定不免费嘛 :stuck_out_tongue:

尝试优化一下,potential_cust_org 表的索引 ,尽量使查询走索引,不要回表会快很多

把哪些多余的 1 = 1 的条件都去掉,实在没啥必要…

这种拼语句的为了防止报错一般都会带着1=1,要不没拼出条件的语句会报错

不写or,接着union到上边那个子查询里不就好了

:joy:程序动态拼接sql的时候经常这样写,去不掉,根本去不掉~

用where标签应该可以去掉

现在都ORM了,不搞这个了

我就是搞开发的,老实说,不好去掉。 :joy:

:wink:按你这么说,我们比较传统,嘿嘿嘿

相同字段的or可以转换为in,不同字段的or可以使用union all代替,这也是代码底层转换的逻辑

社区版免费,旗舰版30天免费
英文版

中文版
https://www.jetbrains.com/zh-cn/idea/download/?section=windows
安装教程


那可以,用个社区版就行

感谢分享

能不能把链接分享一下