@dlangru

Страница 500 из 719
Ievgenii
09.04.2018
05:33:26
И хороший мап редьюс

Ну и лично для меня - это скорость

И много разных ништячков:

Поиск случайных записей (одной или более)

Google
Ievgenii
09.04.2018
05:40:24
Модификации записи при ее получении

+ посмотри модификатор графЛукап

+ репликация и шардирование с пол тыка

Evgeny
09.04.2018
06:18:08
Ну и лично для меня - это скорость
юля с чего ты взял, что монга быстрее?

Ievgenii
09.04.2018
06:18:38
О.о

Я не Юля)))

Потому, что замеряли

elias
09.04.2018
06:19:13
это опечатка в стиле Юля Зуева? :)

Evgeny
09.04.2018
06:19:19
Джойны есть, индексы есть частичные и полные.
О_O в монге можно связать несколько таблиц в запросе? Индексы нужны по выражениям.

Evgeny
09.04.2018
06:19:53
Потому, что замеряли
ссылочку пожалуйста на замеры.

Google
Ievgenii
09.04.2018
06:20:26
ссылочку пожалуйста на замеры.
Я не публиковал. Мы сами замеряли для себя и все.

А в 3.6 добавили ещё "сложные" условия при джойне

Evgeny
09.04.2018
06:22:31
Что значит по выражениям?
https://postgrespro.ru/docs/postgrespro/10/indexes-expressional

Ievgenii
09.04.2018
06:22:39
С полной агригацией присоединяемой коллекции

Там тривиальные примеры, которые в Монго покрываются простыми индексами

Я не отрицаю, что это полезная вещь, но я пока не понимаю область ее применения

Ievgenii
09.04.2018
06:28:12
https://postgrespro.ru/docs/postgrespro/10/indexes-expressional
В принципе понятно как оно устроено. Интересная штука.

Не проблема самому такое сделать, но когда оно поддерживается с коробки - это удобно

Я в монго для такого просто подготавливал данные и ложил в дополнительное поле

И фильтровал уже по этому полю

Evgeny
09.04.2018
07:02:43
Да, так можно, но в нашем случае неудобно. У нас есть большая таблица по которой идет поиск на основе довольно специфических юзверьских запросов. мы собрали статистику по наиболее частым запросам и создали семь индексов на выражениях для ускорения этих запросов. И что очень порадовало, для этого не пришлось менять ни код приложения ни структуру БД. Просто добавили несколько хранимых процедур, считающих индексы и использовали их.

эдакая оптимизация БД не затрагивая разработчика апликухи вообще

Я не публиковал. Мы сами замеряли для себя и все.
Вот и возникают сомнения. Часто люди меряют неправильно вставки. Постгра по умолчанию настроена на ACID, а монга, ЕМНИП нет. Надо отключать WAL для таблицы и делать отложеные insert-ы, чтобы сравнивать в одинаковых условиях.

https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
А, это появилось в 3.2, мы к тому времени уже отказались от монги в новом проекте. в старом у нас задействована и монга и постгра

Evgeny
09.04.2018
07:22:35
Мы тестили все варианты в равных условиях
Хз как вы тестили. В постгре много тонкостей, которые вы могли просто не знать. Вот например весьма интересный документ: https://www.percona.com/live/e17/sites/default/files/slides/High%20Performance%20JSON%20-%20PostgreSQL%20vs.%20MongoDB%20-%20FileId%20-%20115573.pdf

Из коробки постгра довольно тормозная. Но в любом случае мы отказались от монги не из-за скорости. Сильно не хватало транзакций. Вытащить что-то из таблицы сделать кое какие рассчеты и запихать обратно в рамках одной транзакции.

Google
Evgeny
09.04.2018
07:26:47
И как я уже говорил, я не хаю монгу, просто скорее всего у нас специфичный проект для которого постгра подошла лучше.

Evgeny
09.04.2018
07:31:36
Нельзя сразу несколько
атомарность это круто, но нам нужно посерьезнее. сделать несколько select а потом в зависимости от результатов обработки сделать несколько update

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

то она как ракета вставляет, а то падает до нуля записей в секунду!

Ievgenii
09.04.2018
07:32:57
Не наблюдается такого поведения

Стабильно 20-30К апдейтов и около 8К вставок в секунду

Ни и около 30-50К выборок

Ievgenii
09.04.2018
07:33:48
Все норм

Evgeny
09.04.2018
07:34:13
не знаю, видимо у них тесты более тяжелые

Ievgenii
09.04.2018
07:34:20
Может диски?

Evgeny
09.04.2018
07:34:39
постгра очень равномерно все делает, впрочем для нас тоже не аргумент

а как с хранимыми процедурами в монге?

про триггеры не спрашиваю, так как мы ими не пользуемся

Ievgenii
09.04.2018
07:35:11
Все круто! Их нет)))

Evgeny
09.04.2018
07:35:23
Google
Ievgenii
09.04.2018
07:35:29
Ну такое

Мы пришли к тому, что мы все выкинули

Evgeny
09.04.2018
07:35:57
как вы их могли выкинуть если их нет? :)

Ievgenii
09.04.2018
07:36:00
И все на АПП уровне делаем

Из Постгре

У нас 2 СУБД

Основные БД Постгре

Evgeny
09.04.2018
07:36:56
ясно

Ievgenii
09.04.2018
07:37:01
А монго для микросервисов

А свой проект какой пилишь?

Admin
ERROR: S client not available

Evgeny
09.04.2018
07:37:58
а гуй какой-нибудь для монги используете?

для администрирования

Ievgenii
09.04.2018
07:38:30
Парни используют что-то, лично мне очень их консоль нравится

Evgeny
09.04.2018
07:39:09
Парни используют что-то, лично мне очень их консоль нравится
консоль из гуя гораздо приятнее использовать :)

язык запросов в монге мне ломает мозг

Ievgenii
09.04.2018
07:40:14
))

А вот мне нравится)

Сейчас покажу пример

Evgeny
09.04.2018
07:40:31
еще странный прикол. раньше работало {_id: 123456789} а потмо оп и перестало

Google
Ievgenii
09.04.2018
07:40:32
Одного нашего запроса)))

Evgeny
09.04.2018
07:40:54
приходится писать {_id: NumberLong(123456789)}

Ievgenii
09.04.2018
07:41:13
[{"$match":{"time":{"$gt":1522829200}}},{"$group":{"_id":"$dataId","lastTime":{"$max":"$time"},"countLog":{"$sum":1}}},{"$lookup":{"from":"test_data","as":"test_data","let":{"dataId":"$_id","lastTime":"$lastTime","countLog":"$countLog"},"pipeline":[{"$match":{"$expr":{"$and":[{"$eq":["$$dataId","$_id"]},{"$lt":["$$countLog","$inDay"]},{"$gt":[{"$subtract":[1522915600,"$$lastTime"]},"$delay"]}]}}}]}},{"$unwind":"$test_data"},{"$replaceRoot":{"newRoot":"$test_data"}}]

приходится писать {_id: NumberLong(123456789)}
А, что число больше Инта ты имеешь ввиду)))

Evgeny
09.04.2018
07:41:46
да, все эти $gt вместо > вымораживают

Ievgenii
09.04.2018
07:41:53
)))

А мне нравится)))

Evgeny
09.04.2018
07:42:02
А мне нравится)))
вы, батенька, извращенец :)

Ievgenii
09.04.2018
07:42:56
вы, батенька, извращенец :)
У каждого свой фетиш)))

Так какой свой проект пилишь?

Evgeny
09.04.2018
07:43:17
хз, я не фапаю на SQL, но это однако совсем бида

Так какой свой проект пилишь?
В смысле какой? Хороший!

Ievgenii
09.04.2018
07:43:46
Ну какой замысел?

Что делает проект?

Evgeny
09.04.2018
07:44:21
Это секретная информация. :)

но мы уходим с D на Elixir

Ievgenii
09.04.2018
07:44:38
Ааа)

Ты не сам?

Evgeny
09.04.2018
07:44:55
Нет

Ievgenii
09.04.2018
07:45:04
Ясно

Evgeny
09.04.2018
07:45:49
Но я могу сам принимать решения какие технологии применять

Страница 500 из 719