Skip to content

Commit a58de39

Browse files
authored
Update TODO.md
1 parent 4470ab2 commit a58de39

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

TODO.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,3 +692,26 @@ delete from vacancy_skills where vacancy_id = 30923954 and skill_id = 530280;
692692
select * from vacancy_modified;
693693
```
694694

695+
# Как решить проблему с неэффективным планом запросов из-за OR с разными колонками
696+
697+
У PostgreSQL есть проблема с неэффективным планом запросов с OR из разных колонок. Но есть обходной путь через UNION ALL.
698+
699+
Было
700+
```sql
701+
select *
702+
from t
703+
where t.a > 0
704+
or t.b < 0;
705+
```
706+
707+
Стало (все условия OR переписываем через несколько SELECT запросов, объединяя их через UNION ALL)
708+
```sql
709+
select *
710+
from t
711+
where t.a > 0
712+
union all
713+
select *
714+
from t
715+
where t.b < 0
716+
```
717+
Это применимо как в основном запросе, так и в подзапросах.

0 commit comments

Comments
 (0)