SQL 优化 or 问题

2020-03-24 10:32:25 +08:00
 deepmindlab

where aoc.ao_order_no = '1' or aoc.ao_airline_no = '1' or aoc.ao_extf_no = '1' or aoc.ao_origin_order_no = '1'

如上,如果条件 aoc.ao_order_no = '1'为 true 时,后面的条件还执行吗?如果是未免性能肯定受到影响,该如何解决?

1055 次点击
所在节点    程序员
2 条回复
RRRoger
2020-03-24 11:44:05 +08:00
如果都建立索引的话,建议改成

```sql

where aoc.ao_order_no = '1'

union

where aoc.ao_airline_no = '1'

union

where aoc.ao_extf_no = '1'

union

where aoc.ao_origin_order_no = '1'

```
egfegdfr
2020-03-24 11:45:21 +08:00
会继续执行,他会把所有符合这 4 个条件的都查出来。
优化的话,
一个是 如果编号都是数字的话,尽量用 int 类型的,不用用字符串。
第二 可以根据实际情况加索引

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/655597

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX