Size: a a a

Clojure — русскоговорящее сообщество

2019 May 31

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
там у него базы разные
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
ну, если базы, тогда да.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
У меня, кстати, есть древний кейс как раз с такой ситуацией - в постгресе были юзера, потом их перетащили в монгу, но теперь при апдейтах приходится править и в постгресе тже, те поля которые там джойнятся 10 лет уже :)
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
ну как бы да - немного гемора.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Для всех, кто начинает юзать монгу, совет -
не увлекайтесь там использованием ObjectID
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
По крайней мере на кложурных коллекциях клеить легче. Помню, на питоне такой же фигней страдали
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Да, еще полезно бывает помнить, что у компьютеров сейчас ОЗУ довольно дофига, и всяких там юзеров можно вообще всегда в памяти держать :)
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
то есть весь подобный ворксет заведомо хорошо умещается в большой мапе.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Если я правильно помню, то в свое время LinkedIn весь свой граф держал на большой машине в ОЗУ, чтобы считалось побыстрее.
источник

Н

Никита in Clojure — русскоговорящее сообщество
Maxim Penzin
Да, еще полезно бывает помнить, что у компьютеров сейчас ОЗУ довольно дофига, и всяких там юзеров можно вообще всегда в памяти держать :)
VoltDB так и работает
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
В одном проекте на серваке было 400 гиг памяти, в нем весь постгрес лежал.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Скорость сумашедшая выходит, плюс привычный язык запросов
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
ага, прикольно.
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Ivan Grishaev
первым вариантом. Джоины по айди очень, очень быстрые. В других вариантах будет 2 запроса, плюс ручная склейка данных. И еще базы не любят, когда в оператор in прилетает 1000 айдишников.
Это легко исправляется.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Mikhail Gusarov
Если стащить людей с Haskell или Scala на Go или Clojure, то у них несколько месяцев идёт ломка из-за того, что паззлы отобрали, приходится переучиваться получать удовольствие от настоящих результатов.
нет никакого "настоящего результата" у разработки.
любое удовольствие в процессе будет результатом той или иной игры.
источник

Anton Žyliuk in Clojure — русскоговорящее сообщество
есть результат, есть система которая выполняет нужные функции
источник

DB

Daulet Batyrbekov in Clojure — русскоговорящее сообщество
Никита
Как смотрите на такой вариант организации запросов к бд на связанные между собой данные.
Самый простой пример: есть продукт с айди, названием, и айди пользователя. У пользователя есть имя. Необходимо вывести список продуктов в виде названое продукта - имя продавца.

Есть два очевидных варианта - делать джоин по юзер айди, либо же денонмализировать и хранить имя пользователя в таблице продуктов (понятно что в этом примере это не совсем уместно, но допустим что у нас много джоинов происходит)

И есть третий вариант, который я недавно услышал: сначала делать запрос на список продуктов, потом из этого списка выбрать айдишники пользователей и сделать второй запрос с этим списком айди на получение пользователей

Насколько третий вариант хорош, и какие могут быть с ним проблемы?
Все зависит от ситуации от размера данных. Если в обеих таблицах большое количество данных, да join будет очень тяжелый.
источник

DB

Daulet Batyrbekov in Clojure — русскоговорящее сообщество
Если очень много продуктов но мало пользователей, проще сделать join
источник

DB

Daulet Batyrbekov in Clojure — русскоговорящее сообщество
запрос по id за долесекунды будет выполнятьня. Если в обейх таблицах большое количество данных, подходит 3-вариант. Потому-что если пагинацией вытащить 100 продуктов, и сделать 100 запросов по айди на пользователей не займет много времени.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Daulet Batyrbekov
Все зависит от ситуации от размера данных. Если в обеих таблицах большое количество данных, да join будет очень тяжелый.
я тут не понял, что означает "тяжелый джоин"?
как измеряется его тяжесть и по отношению к чему?
источник