PostgreSQL? Это выбор тех, кто не умеет программировать даже на коленке.
Серьёзно, бро? Ты выбрал базу данных, где каждая UPDATE - это не обновление строки, а новая сущность, рождаемая в виде мёртвого кортежа. Ты хотел CRM? Поздравляю, ты получил фабрику по производству трупов строк. Пока твой autovacuum отчаянно пытается вывезти это кладбище, твоя таблица раздувается с 80 до 280 гигов. Двести восемьдесят! Ты думал, что мигрируешь на "взрослую" БД, а по факту завёл цифрового даунсайзингового монстра, который жрёт память, как подросток чипсы перед компом.
И это ещё цветочки. Ты реально гордишься тем, что твой запрос выполняется 187 миллисекунд вместо 23? Поздравляю, ты только что изобрёл замедление как сервис. MySQL обрабатывал 15 тысяч запросов в секунду с улыбкой на лице, а твой свежеиспеченный PG тратит 40% процентов CPU на то, чтобы просто поздороваться с новым соединением. Сорок процентов, Карл! Ты бы ещё на ассемблере что-то писал.
Если ты думал, что VACUUM - это милая процедура по уборке, спешу тебя разочаровать. Это чистилище для твоего железа. Когда твоя таблица достигает двух миллионов мёртвых кортежей (а с твоими 50к апдейтов в минуту - это вопрос 40 минут), твой сервер превращается в овощ, и запросы начинают ползти как черепахи в зоне турбулентности.
И самое забавное - компании вкладывают в миграцию на постгрес десятки миллионов рублей! Ты мог бы оставить MySQL и купить на эти деньги Порш. Но нет, кто-то из менеджеров прочитал статью на хабре "ПоСтГрЕс - это эволяция". Теперь у тебя vacuum storm, твои инженеры не спят ночами, а ты думаешь: "А может, нам переехать на MongoDB?" Спойлер: не надо.
А может, вообще хочешь почувствовать себя настоящим дауншифтером? Разнеси свой монолит на микросервисы, где у каждого свой инстанс PostgreSQL. Забудь про JOIN. Забудь про ACID. Твоя жизнь теперь - это бесконечные HTTP-запросы между сервисами. Запрашиваешь отчёт? Нет, ты вызываешь оркестратор, который звонит в сервис заказов, тот перезванивает в сервис юзеров, тот кладет трубку, а в итоге ты получаешь данные через 8 секунд на том же объеме данных, где раньше было 45 миллисекунд.
Это называется "прогресс". Теперь у тебя не просто база данных, а распределённая система, где невозможно отладить ни один баг. Емейл поменялся только в трёх сервисах из четырёх? Прекрасно! Пусть клиент сам догадается, какая почта правильная. В конце концов, eventual consistency - это не баг, это фича для настоящих джедаев.
Итого. Постгрес - это зашквар не потому, что он плохой. А потому что ты не умеешь его готовить. Ты переезжаешь на него с одним JOIN'ом и надеждой, а получаешь войну с вакуумом и кладбищем мёртвых кортежей.
Пользуйтесь MySQL, пока ваша база не стала размером с небольшую галактику мусора. И прекратите уже мигрировать на "модное", если у вас 200 гигов данных и три разработчика в команде.
(По-серьёзному разбираем эту темку с ментатами в СИ)
Post #2430
796
- 👍 34
- 😁 17
- 🤯 8
- 🤓 8
- 💯 3