Comments 26
И выяснилось, что Postgres (слегка) опережает MySQL, и для меня это было в принципе достаточно какой-то новой историей, потому что казалось, что пропорция должна быть другой. И есть опросы, которые проводят на конференциях HighLoad, они публиковались. У меня нет прямо системного сравнения год к году, но там прямо четко прослеживалось, что Postgres в какой-то момент по числу ответов на вопрос “какая ваша основная база данных” догнал и перегнал MySQL.
Скорее всего, где-то в середине 18го года.
www.facebook.com/groups/feedme.ru/permalink/3218143878217976
Postgres в какой-то момент по числу ответов на вопрос “какая ваша основная база данных” догнал и перегнал MySQL
Вера в волшебную таблетку, Postgres в какой-то момент стали выбирать просто потому, что он не MySQL.
Не так давно, года 3 назад, некоторые подрядчики моего клиента предложили — давайте перейдём на Postgres. На вопрос «зачем» ответ был «мы слышали, что он лучше и быстрее». «Слышали», едрён батон, так в IT нынче продукт выбирают. А по факту в их MySQL по важным полям индексов не было, повсеместные фуллсканы, блокирующие вставки и непонимание селективности таблиц при составлении запросов.
И это не единственный такой случай в моей практике.
Впрочем есть моменты, которые не нравятся в постгресе. Шардирование пока слабое, не умеет желаемых фич (конкретно сейчас упёрся в неумение делать комбинацию из parallel fdw + passing limit offset). Я понимаю почему постгрес делает именно так, у него нет нужной информации о хранимых данных (+ меня устроит небольшая погрешность в угоду производительности), но и у меня нет способов эту информацию ему предоставить. Пока решаю это силами бекэнда вручную распределяя запросы и собирая ответы.
PS: Строгий режим в MySQL можно было включать где-то с версии 5.0, тыщу лет назад, но обычно все старались наоборот sql_mode затереть, до сих пор стараются. Даже когда-то был режим POSTGRESQL, для обеспечения совместимости :)
Мой основной опыт был с MySQL версий 4.0 и 4.1.
Какое-то время MySQL безбожно отставал по фичам, выход 8 вроде бы сократил отставание, но как-то вживую (кстати, последние месяцы активно проходил собесы, много проектов на PHP) не встречал 8. Замерли на 5.7 или вообще Мария и Перкон, но на том же уровне совместимости. Зато переход на postgre или недавно сделали (включая мой прошлый с этой недели проект) или планируется в ближайшее время. Как-то не зашла 8. А MySQL ещё и сегментировался на форки.
Но везде где я сталкивался с MySQL он создавал проблемы.
И наоборот. Там где я сталкивался с PostgreSQL он просто работал.
Обычно это "просто работал" обеспечивалось грамотным админом, на худой конец разработчиком.
С MySQL ставил админ и разбирался админ.
Но постоянно какие-то косяки вылазили.
То проблемы с кодировкой, то проблемы с датой, то соединение тихо закрывалось и пул соединений выдавал «мертвый connection».
В общем лично у меня опыт с MySQL негативный :-)
Это опыт с админом ;) кстати, пул соединений в отличие от постгреса (когда баунсер вовнутрь завезут?) ставить не нужно, и формулировка «выдавать мертвый коннекшн» к mysql неприменима.
А драйвер, почему то не дергал connection, на проверку «живости».
Пришлось городить свой костыль.
С PostgreSQL было поставил-забыл. Все работает.
Но это мой опыт.
Вот у меня опыт противоположный. Всегда после установки PostgreSQL нужно конфигурировать, а MySQL в основном только когда нагрузки пошли и тормоза с настройками по умолчанию.
Угу. типа "у нас MySQL 5.5, нужно апгрейдится. Куда? MySQL 8? MariaDB 10.4? Percona? А может таки Postgres?"
Работать, кстати, стало значительно шустрее. Я аж удивился, когда оно запустилось.
Что происходит с популярностью MySQL и PostgreSQL? Дискуссия на митапе