Size: a a a

pgsql – PostgreSQL

2020 June 13

m

maxp.dev in pgsql – PostgreSQL
хотя я не в курсе вашей изначальной задачи, как я понял полностью ее тут не было.
источник

AB

Alexander B in pgsql – PostgreSQL
maxp.dev
за счет чего быстрее работает?
да ну брось, зачем опять на новый круг заходить?
спрашивающий уже умудрился съехать на возраст, хотя даже задачу так и не описал толком. 🤷‍♂️
источник

m

maxp.dev in pgsql – PostgreSQL
ну а что ж :)
сегодня суббота, а на возраст я еще даже лучше могу съехать :)
источник

m

maxp.dev in pgsql – PostgreSQL
хотя да, большого смсла нет.
источник

2_

2flower _ in pgsql – PostgreSQL
Alexander B
да ну брось, зачем опять на новый круг заходить?
спрашивающий уже умудрился съехать на возраст, хотя даже задачу так и не описал толком. 🤷‍♂️
так нет, это как раз многое объясняет, профдеформация, и оверхед по навыкам, короче "горе от ума".
источник

AB

Alexander B in pgsql – PostgreSQL
Данинг-крюгер во все поля
источник

TS

Tagil Steel in pgsql – PostgreSQL
maxp.dev
за счет чего быстрее работает?
За счет того, что фетчится только то, что надо и один раз, во временную таблицу. после чего по ней проходят агрегаты. Тоже оптимальное количество раз, после чего по полученному проходят внешние результаты и получается ответ.
Если задачу удаления дублей решать на уровне поздапроса, то это приведет к созданию еще одной промежуточной таблицы и к еще одному проходу агрегатов. Не скажу, что это супердолго - просто если к остальным плюсам еще и добавить небольшое ускорение - то почему бы и нет.
Ведь с другой строны стоит только "так принято делать".
А в нашем случае еще есть причина - у нас деньги считаются в разных валютах. Один товар может продан за доллары, а другой за евро. Так чт цена - это объект со значением и кодом валюты. Количество тоже может быть в разных единицах и их считать надо отдельно. И результат выдавать в виде объекта единица - значение.
Так что кастомные агрегаты все равно писать...
источник

TS

Tagil Steel in pgsql – PostgreSQL
Alexander B
да ну брось, зачем опять на новый круг заходить?
спрашивающий уже умудрился съехать на возраст, хотя даже задачу так и не описал толком. 🤷‍♂️
Выше задача была описана.
источник

m

maxp.dev in pgsql – PostgreSQL
Tagil Steel
За счет того, что фетчится только то, что надо и один раз, во временную таблицу. после чего по ней проходят агрегаты. Тоже оптимальное количество раз, после чего по полученному проходят внешние результаты и получается ответ.
Если задачу удаления дублей решать на уровне поздапроса, то это приведет к созданию еще одной промежуточной таблицы и к еще одному проходу агрегатов. Не скажу, что это супердолго - просто если к остальным плюсам еще и добавить небольшое ускорение - то почему бы и нет.
Ведь с другой строны стоит только "так принято делать".
А в нашем случае еще есть причина - у нас деньги считаются в разных валютах. Один товар может продан за доллары, а другой за евро. Так чт цена - это объект со значением и кодом валюты. Количество тоже может быть в разных единицах и их считать надо отдельно. И результат выдавать в виде объекта единица - значение.
Так что кастомные агрегаты все равно писать...
вы уверены, что в деталях понимаете, как именно создаются временные таблицы и когда?
источник

AB

Alexander B in pgsql – PostgreSQL
Дядь, я базель3 для банка (все его активы/пассивы) считал на голом скл. Ничего не тормозило.
источник

2_

2flower _ in pgsql – PostgreSQL
maxp.dev
вы уверены, что в деталях понимаете, как именно создаются временные таблицы и когда?
-Военный, а нам оружие дадут?
-335
источник

TS

Tagil Steel in pgsql – PostgreSQL
maxp.dev
вы уверены, что в деталях понимаете, как именно создаются временные таблицы и когда?
Никогда нельзя быть во всем до конца уверенным, но мы решали эту задачу многими способами, смотрели эксплейны, смотрели код постгреса, читали статьи задавали многим вопросы, разбирались, в результате чего пришли к таким выводам.
С удовольствием увидели бы решение задачи, которое по объективным показателям лучше, чем наше, но пока то, что я слышу по теме - смесь наивности и высокомерия.
источник

Ð

Ð in pgsql – PostgreSQL
Tagil Steel
Никогда нельзя быть во всем до конца уверенным, но мы решали эту задачу многими способами, смотрели эксплейны, смотрели код постгреса, читали статьи задавали многим вопросы, разбирались, в результате чего пришли к таким выводам.
С удовольствием увидели бы решение задачи, которое по объективным показателям лучше, чем наше, но пока то, что я слышу по теме - смесь наивности и высокомерия.
а чего вы просто не поставили оракл?
источник

2_

2flower _ in pgsql – PostgreSQL
Tagil Steel
Никогда нельзя быть во всем до конца уверенным, но мы решали эту задачу многими способами, смотрели эксплейны, смотрели код постгреса, читали статьи задавали многим вопросы, разбирались, в результате чего пришли к таким выводам.
С удовольствием увидели бы решение задачи, которое по объективным показателям лучше, чем наше, но пока то, что я слышу по теме - смесь наивности и высокомерия.
давайте для объективности скажем, что вы не умете готовить sql раз написали такую монструозную штуку с поиском в массиве, и судя по вашим
высказываниям вы не один в код смотрели.
так что 'смесь наивности и высокомерия'-это вам алаверды.
источник

m

maxp.dev in pgsql – PostgreSQL
ну так-то кейс интересный был бы, если с дата сэмплами и постановкой задачи, чисто потренироваться чтобы
источник

2_

2flower _ in pgsql – PostgreSQL
я даже не упоминал ту дичь, когда у вас в таблице продаж по товару идет jsonb поле с плоскими данными, которые спокойно могли быть в обычном виде,
но кто то дюже инновационный сделал по модному, в итоге вы будете терять каждый раз на парсинг jsonb, падение производительности по индексам когда там чего то надо поискать, и преобразование типов.
источник

TS

Tagil Steel in pgsql – PostgreSQL
Ð
а чего вы просто не поставили оракл?
Да как-то считаем что постгрес удовлетворит все наши потребности. Мы вообще любим форкнуть и что-то дописать под потребности, например, NGINX и REDIS у нас тоже "улучшенные", в REDIS вообще свой тип дописан - хитрый linkedList со всеми методами , в случае с PG это сделать легко и приятно.
источник

m

maxp.dev in pgsql – PostgreSQL
2flower _
я даже не упоминал ту дичь, когда у вас в таблице продаж по товару идет jsonb поле с плоскими данными, которые спокойно могли быть в обычном виде,
но кто то дюже инновационный сделал по модному, в итоге вы будете терять каждый раз на парсинг jsonb, падение производительности по индексам когда там чего то надо поискать, и преобразование типов.
ну джсон вполне может быть по каким-то причинам, но тогда его надо развернуть куда-нибудь
источник

2_

2flower _ in pgsql – PostgreSQL
про консистентность данных тоже промолчу.
источник

Ð

Ð in pgsql – PostgreSQL
Tagil Steel
Да как-то считаем что постгрес удовлетворит все наши потребности. Мы вообще любим форкнуть и что-то дописать под потребности, например, NGINX и REDIS у нас тоже "улучшенные", в REDIS вообще свой тип дописан - хитрый linkedList со всеми методами , в случае с PG это сделать легко и приятно.
но в пг же нет олапа, это чисто олтп база, а вам нужен именно он, судя по всему
источник