Size: a a a

2020 March 25

B

Bretbas in pro.net
Ilya Chernoudov
у него postgree
mysql
источник

Dv

Dr. Friedrich von Never in pro.net
Bretbas
С SQL разбираюсь на сколько это возможно.
Но какой запрос:
... WHERE p.CategoryId IS NOT NULL THEN p.CategoryId IN (58,1,2,3) ELSE TRUE
или
WHERE p.CategoryId IN (58,1,2,3) OR p.CategoryId IS NULL

будет быстрее, я не знаю. Поэтому и спросил
На практике, имхо, разница будет сильно зависеть от используемой СУБД. Хороший оптимизатор в БД додумается, как такой запрос сделать быстро, если есть нужные индексы и статистика, а плохой — нет.
источник

IC

Ilya Chernoudov in pro.net
Bretbas
mysql
точняк!
источник

AT

Alexey Tkachenko in pro.net
по большому счёту выражения эквивалентны
источник

Dv

Dr. Friedrich von Never in pro.net
По делу в таких вещах стоит план запроса изучать.
источник

Dv

Dr. Friedrich von Never in pro.net
В рамках конкретного запроса в конкретной БД
источник

AT

Alexey Tkachenko in pro.net
но вообще план выполнения смотреть надо
источник

AT

Alexey Tkachenko in pro.net
опять-таки, сегодня одно утверждение верно, завтра - другое
источник

AT

Alexey Tkachenko in pro.net
может быть вообще UNION с разными условиями будет целесообразнее сделать
источник

B

Bretbas in pro.net
Alexey Tkachenko
опять-таки, сегодня одно утверждение верно, завтра - другое
Я в любом случае сделал вторым вариантом, потому что оно более естественно, чем первое.
Просто стало интересно, поэтому и написал сюда
источник

AT

Alexey Tkachenko in pro.net
Bretbas
Я в любом случае сделал вторым вариантом, потому что оно более естественно, чем первое.
Просто стало интересно, поэтому и написал сюда
собственно вопрос про доказательство недостаточной скорости всё ещё уместен
источник

B

Bretbas in pro.net
Alexey Tkachenko
собственно вопрос про доказательство недостаточной скорости всё ещё уместен
недостаточной скорости чего?
источник

B

Bretbas in pro.net
запроса?
источник

AT

Alexey Tkachenko in pro.net
извлечения данных
источник

B

Bretbas in pro.net
второго варианта? который выбрал я?
источник

AT

Alexey Tkachenko in pro.net
того, который ты используешь
источник

B

Bretbas in pro.net
Alexey Tkachenko
того, который ты используешь
ну он вроде прямолинейный. Обычный WHERE
источник

Dv

Dr. Friedrich von Never in pro.net
Bretbas
Я в любом случае сделал вторым вариантом, потому что оно более естественно, чем первое.
Просто стало интересно, поэтому и написал сюда
Я бы тоже делал по умолчанию второе
источник

AT

Alexey Tkachenko in pro.net
ну он же у тебя не сам по себе, не так ли? ты какую-то более общую задачу решаешь, или нет?
источник

B

Bretbas in pro.net
Alexey Tkachenko
ну он же у тебя не сам по себе, не так ли? ты какую-то более общую задачу решаешь, или нет?
ну вообще у меня там фильтр, да. Это выдернуто из контекста)
источник