Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /