это
Да, мне FastAPI только в синхроне и надо.
В моих проектах у монги есть преимущество:
1) Мне не нужны транзакции. А в PostgreSQL иногда я натываюсь на проблемы с транзакциями, когда при попытке что-то записать получается ошибка, что сессия с ошибкой нужно делать роллбек.
2) Все мои данные они реально лучше ложатся в концепцию коллекций. Когда есть документы с вложенными документами. Понятно что и в постгресе можно забабахать все на JSONB, но нормализацию таблиц уже из головы мне не вытащить, и в результате когда я с посгрисом работаю, у меня много таблиц и запросы потом получаются сложные.
3) Мне в моих проектах очень важна скорость разработки. Я понимаю, что с всякими alembic миграции для постгриса можно генерить автоматом. Но все равно какие-то мелочи есть, которые руками приходитсяс прописывать. Например алембик сам не удаляет в миграциях автоматом созданные типы, надо руками прописать.
И да, я согласен что Schemaless это нифига не плюс. Все равно у меня есть модели. И как раз эти schemaless это и есть причина, почему я иногда возвращаюсь к постгресу. Боюсь на монге данные потерять. Но по факту, за много лет у меня в проекте на монге я ни разу не накосячил и данные не потерял.
А не появилась ли в монге система человеческих ошибок на схемы? Там уже давно есть возможность, для коллекций задавать жесткую схему. Вот только проблема в том, что ошибки там бесполезные. Т.е. при попытки записать невалидный документ, монга кидала ошибку без деталей в чем именно проблема. Может в новой 4.4 версии сделали нормаьные сообщения об ошибках?
Ну смотри сам, я за 8 лет много раз плевался на эту многу и хотелось перейти на Postgres. Но поскольку было уже несколько продакшен стендов, то не было особо времени изучить этот вопрос, понять какие реально плюсы будут, которые смогут перевесить возможность шардирования. За это время у меня уже "стокгольмский синдром" выработался. Я просто уже привык к этой монге и к тому, что надо постоянно ожидать от неё подвоха и подкладывать везде соломку.
С таблицами и JSONB в простгресе очень удобное приавло можно взять на вооружение, что бы решить, что надо в колонки, а что в JSONB. Если поле есть не во всех документах, его не нужно индексировать, не надо по нему какие-то сложные запросы с условиями - то это кандидат на запихивание в JSONB. Хотя даже если надо индесировать - в постгре гораздо больше возможностей сделать это с JSONB, чем в монге.
В постгре можно и без транзакций работать - будет даже быстрее.
Я вот в постгресе стал активно юзать JSONB поля. Сложных запросов по ним не делаю. В основном там какие-то цельные куски, которые укладывать в нормализованную базу и доставать через пять джоинов было бы больно. Пока нравится.
Обсуждают сегодня