Size: a a a

2020 December 23

АЮ

Андрей Юнми... in pro.elixir
Anastasiya Dyachenko
если только id то можно без фрагмента обойтись where([q], q.id in ^lol_ids)
Работает на порядки медленнее. Я поэтому и хочу переписать.
источник

АЮ

Андрей Юнми... in pro.elixir
Особенно, если айдишников много.
источник

NM

Natalia Maximenko in pro.elixir
Андрей Юнми
Особенно, если айдишников много.
А почему там именно список айдишников нужен? Нет к ним join таблицы?
источник

AD

Anastasiya Dyachenko in pro.elixir
Андрей Юнми
Работает на порядки медленнее. Я поэтому и хочу переписать.
пункт joining with fragments https://hexdocs.pm/ecto/Ecto.Query.html#join/5
источник

NM

Natalia Maximenko in pro.elixir
Километровый список айдишников в запросе выглядит как антипаттерн. Поправьте, если не права
источник

АЮ

Андрей Юнми... in pro.elixir
Natalia Maximenko
А почему там именно список айдишников нужен? Нет к ним join таблицы?
Так работают прелоады, если их прямо в квери не пропихивать.
источник

ML

Maksim Lapshin in pro.elixir
Natalia Maximenko
Километровый список айдишников в запросе выглядит как антипаттерн. Поправьте, если не права
километровый — это сколько?  200 или 200 тыс?
источник

АЮ

Андрей Юнми... in pro.elixir
И их удобнее подгрузить отдельно, если только ради них нужно юзать лефт джойны.
источник

NM

Natalia Maximenko in pro.elixir
Андрей Юнми
И их удобнее подгрузить отдельно, если только ради них нужно юзать лефт джойны.
Ок
источник

PG

Pig Greenest in pro.elixir
слева от заголовка есть якорь
https://hexdocs.pm/ecto/Ecto.Query.html#join/5-joining-with-fragments
источник

АЮ

Андрей Юнми... in pro.elixir
Хм. Видимо, пропустил этот пункт. Спасибо.
источник

V

V in pro.elixir
Андрей Юнми
Работает на порядки медленнее. Я поэтому и хочу переписать.
На каком объёме бенчмаркал?
источник

АЮ

Андрей Юнми... in pro.elixir
V
На каком объёме бенчмаркал?
Там ещё пара джоинов. Если не брать фильтрацию по айдишникам (их было 48), то там примерно 3к записей с копейками.
источник

V

V in pro.elixir
where id in (<ids_list>) выглядит как самый быстрый вариант из возможных, я использовал его много раз в разных вариациях и не имел проблем со скоростью.
То что ты пишешь о тормозах с этим условием, тем более "на порядки медленнее" - звучит как минимум странно. 3к строк всего и 48 айдишников - в принципе очень маленькое количество для проблем с производительностью
источник

АЮ

Андрей Юнми... in pro.elixir
V
where id in (<ids_list>) выглядит как самый быстрый вариант из возможных, я использовал его много раз в разных вариациях и не имел проблем со скоростью.
То что ты пишешь о тормозах с этим условием, тем более "на порядки медленнее" - звучит как минимум странно. 3к строк всего и 48 айдишников - в принципе очень маленькое количество для проблем с производительностью
Ну смотри.
источник

АЮ

Андрей Юнми... in pro.elixir
источник

АЮ

Андрей Юнми... in pro.elixir
источник

AB

Alex Bubnov in pro.elixir
Андрей Юнми
Ну смотри.
я не большой специалист, но смотрю в планы и не очень уверен, что стал полагаться на такое поведение оптимизатора.
(и как следствие этого, наверное, денормализовал бы это всё к чертям)
источник

V

V in pro.elixir
Не могу понять что за Nested Loop. Вроде бы постгрес рисует explain с отступами?
источник

V

V in pro.elixir
Видимо, в первом случае постгрес строит декартово произведение по всем строкам трёх таблиц,  а потом фильтрует, и фильтрация по айдишникам происходит не в первую очередь.
источник