Size: a a a

2021 June 09

B

Bogdan in pro.elixir
|> join(
     :inner_lateral,
     [a],
     b in fragment(
       "SELECT * FROM b AS b WHERE b.id > ? ORDER BY b.id LIMIT 1000",
       a.last_b_id
     )
   )
источник

B

Bogdan in pro.elixir
почему-то сам elixir долго ждет перед тем как query отправить
источник

B

Bogdan in pro.elixir
это в целом тоже самое что через Task.async_stream получается по времени, но только процессами лишними не заколебывается база.
источник

ММ

Максим Мартынов... in pro.elixir
Так а в чем задача приложения? Ты так и не описал ее
источник

B

Bogdan in pro.elixir
дернуть B сматчить и присвоить к A
источник

B

Bogdan in pro.elixir
в a_b таблицу
источник

ММ

Максим Мартынов... in pro.elixir
Ещё на уровень выше
источник

ММ

Максим Мартынов... in pro.elixir
Если смотреть на фичу целиком
источник

B

Bogdan in pro.elixir
выше ни чего нету.
источник

ММ

Максим Мартынов... in pro.elixir
Это сообщения в чате, последние уведомления, какая-то очередь?
источник

ММ

Максим Мартынов... in pro.elixir
Просто возможно тебе не подходит текущая схема бд или вообще вместо самой бд нужно что-то другое
источник

ММ

Максим Мартынов... in pro.elixir
Производительность такого запроса сильно зависит от количества строк в таблице, раз оно уже тормозит, дальше будет только хуже
источник

B

Bogdan in pro.elixir
да нет, нагрузка засчет дергания через :last_b_id пойдет на уменьшение.
источник

B

Bogdan in pro.elixir
поэтому в целом оно даже в таком варианте терпимо будет.
источник

ММ

Максим Мартынов... in pro.elixir
Как знаешь
источник

B

Bogdan in pro.elixir
Как вариант можно заполнить овраги в индексации нулевыми значениями, и дергать через обычный join без subquery
источник

B

Bogdan in pro.elixir
это конечно сильно все ускорит
источник

B

Bogdan in pro.elixir
еще есть один вариант это убрать limit нафиг)
источник

B

Bogdan in pro.elixir
нашел вариант как это лучше оптимизировать, спасибо натолкнул на мысль!
источник
2021 June 10

ММ

Максим Мартынов... in pro.elixir
Что за вариант?
источник