Fight With Me!!!

导航

oracle in 条件超长问题解决

今天做了个es查询地址条件的需求,在回传给使用应用的过程当中,使用的应用出现了错误:in的条件中多于1000个表达式数会报ORA-01795的提示错误。接下来将in中的条件拆分,超过1000的用Or连接,发现in的效率非常低下。后来搜索到如下的回答之后,修改之后解决:

 

优化的方法就是id字段加索引,几百万还不算多,加个索引,就可以很快了。

但是不能使用in,因为in是不走索引的。可以将in改为or,select * from A where id='1' or id='2' or id='3'.....

前提是你只用id查询哦,如果有其他条件就将所有条件都加到索引中。

  

 

posted on 2021-06-06 22:52  nickTimer  阅读(771)  评论(0编辑  收藏  举报