Search
Write a publication
Pull to refresh

Comments 26

индексов много, но нужно внимательно смотреть, что считается. самый правильные индексы — числа разработчиков (опросы, которые я привел, либо, опосредованно — открытых позиций).
Я к вопросу
И выяснилось, что Postgres (слегка) опережает MySQL, и для меня это было в принципе достаточно какой-то новой историей, потому что казалось, что пропорция должна быть другой. И есть опросы, которые проводят на конференциях HighLoad, они публиковались. У меня нет прямо системного сравнения год к году, но там прямо четко прослеживалось, что Postgres в какой-то момент по числу ответов на вопрос “какая ваша основная база данных” догнал и перегнал MySQL.


Скорее всего, где-то в середине 18го года.
чуть раньше. вот тут в комментариях есть подробности с наложением роста выручки Амазона и популярности постгреса по отношению к другим субд по версии db-engines (они считают упоминания).
www.facebook.com/groups/feedme.ru/permalink/3218143878217976
я-то сам не очень верю в «доросли», если честно
Postgres в какой-то момент по числу ответов на вопрос “какая ваша основная база данных” догнал и перегнал MySQL

Вера в волшебную таблетку, Postgres в какой-то момент стали выбирать просто потому, что он не MySQL.
Не так давно, года 3 назад, некоторые подрядчики моего клиента предложили — давайте перейдём на Postgres. На вопрос «зачем» ответ был «мы слышали, что он лучше и быстрее». «Слышали», едрён батон, так в IT нынче продукт выбирают. А по факту в их MySQL по важным полям индексов не было, повсеместные фуллсканы, блокирующие вставки и непонимание селективности таблиц при составлении запросов.
И это не единственный такой случай в моей практике.
IT сфера уже давно по большей своей части напоминает fashion индустрию: чем громче технология, тем больше у нее пользователей. С одной стороны это дает возможность индустрии быстро развиваться, с другой очень много ресурсов уходит с одной стороны на пиар с другой на использование непригодных для задачи инструментов.
Я когда-то давно перешёл на постгрес из-за строгости его подходов, отсутствия магии. Основной базой всегда был MySQL, с постгресом был опыт в паре компаний. Когда возник вопрос что взять — меня подкупила строгость подходов. Впрочем я слышал что с тех пор в MySQL с этим всё стало значительно лучше, но нет времени и причин пробовать — постгрес устраивает.

Впрочем есть моменты, которые не нравятся в постгресе. Шардирование пока слабое, не умеет желаемых фич (конкретно сейчас упёрся в неумение делать комбинацию из parallel fdw + passing limit offset). Я понимаю почему постгрес делает именно так, у него нет нужной информации о хранимых данных (+ меня устроит небольшая погрешность в угоду производительности), но и у меня нет способов эту информацию ему предоставить. Пока решаю это силами бекэнда вручную распределяя запросы и собирая ответы.
Проблемы нет, когда ты знаешь зачем нужен именно этот инструмент и можешь грамотно обосновать свое желание его использовать.

PS: Строгий режим в MySQL можно было включать где-то с версии 5.0, тыщу лет назад, но обычно все старались наоборот sql_mode затереть, до сих пор стараются. Даже когда-то был режим POSTGRESQL, для обеспечения совместимости :)
В те годы был довольно популярен shared hosting, который не так быстро устанавливал свежие версии базы. И тут больше идёт речь за режим работы по-умолчанию, если я верно помню — строгий режим нужно было включать отдельно.

Мой основной опыт был с MySQL версий 4.0 и 4.1.

Начиная с какой-то 5.х относительно строгий режим был по умолчанию и с каждым минорным релизом становился всё строже. Но хостеры часто его сбрасывали в ноль и совместимость с 4.х, чтобы клиенты меньше писали в саппорт.

Какое-то время MySQL безбожно отставал по фичам, выход 8 вроде бы сократил отставание, но как-то вживую (кстати, последние месяцы активно проходил собесы, много проектов на PHP) не встречал 8. Замерли на 5.7 или вообще Мария и Перкон, но на том же уровне совместимости. Зато переход на postgre или недавно сделали (включая мой прошлый с этой недели проект) или планируется в ближайшее время. Как-то не зашла 8. А MySQL ещё и сегментировался на форки.

Мой опыт конечно же не релевантный.
Но везде где я сталкивался с MySQL он создавал проблемы.
И наоборот. Там где я сталкивался с PostgreSQL он просто работал.

Обычно это "просто работал" обеспечивалось грамотным админом, на худой конец разработчиком.

Просто работал — это я ставил PostgreSQL, он работал.
С MySQL ставил админ и разбирался админ.
Но постоянно какие-то косяки вылазили.
То проблемы с кодировкой, то проблемы с датой, то соединение тихо закрывалось и пул соединений выдавал «мертвый connection».
В общем лично у меня опыт с MySQL негативный :-)

Это опыт с админом ;) кстати, пул соединений в отличие от постгреса (когда баунсер вовнутрь завезут?) ставить не нужно, и формулировка «выдавать мертвый коннекшн» к mysql неприменима.

Так jndi-же. Как бы стандартный способ работы с БД в серверах приложений/сервлетов на Java. :-)
А драйвер, почему то не дергал connection, на проверку «живости».
Пришлось городить свой костыль.
С PostgreSQL было поставил-забыл. Все работает.
Но это мой опыт.
если это прямо драйвер то он не должен отвечать за пул соединений, мб это пул — тогда да, нужно либо проверки делать, либо конфигурироваться через время жизни. но вообще ЕМНИП оно в mysql достаточно большое по умолчанию, странно, что вы в это уперлись.
Уперлись. Там интеграция была. В общем между обращениями проходило много времени, чтобы пул соединений «протух».
Просил админа увеличит время «удержания» соединения.
Не захотел делать.
Пришлось делать костыль и переодично дергать соединение к БД.

Вот у меня опыт противоположный. Всегда после установки PostgreSQL нужно конфигурировать, а MySQL в основном только когда нагрузки пошли и тормоза с настройками по умолчанию.

UFO landed and left these words here

Угу. типа "у нас MySQL 5.5, нужно апгрейдится. Куда? MySQL 8? MariaDB 10.4? Percona? А может таки Postgres?"

На старом проекте, код которого не менялся уже больше 10 лет (писался ещё под PHP4) — я в этом году проапгрейдил до актуальной MariaDB, PHP 7.4, Debian Buster, свежий nginx на HTTP2. Пришлось сделать лишь несколько правок в коде, чтобы заработало. К базе не было вообще никаких вопросов, самая боль была в PHP найти все ругулярки с флагом /e и переписать и полифилы подключить.

Работать, кстати, стало значительно шустрее. Я аж удивился, когда оно запустилось.
20 лет на Java (в основном) и сопутствующих технологиях занимаюсь разработкой и внедрением различных ГИС систем в области лесного хозяйства (не Россия). 8 лет был плотно вовлечен в проекты с использованием Oracle БД у клиентов (и, конечно, Spatial, так как ГИСы). На моих глазах большие «лесные» организации (и не только) потихоньку сползали с Oracle и уходили на PostgreSQL (и, конечно, PostGIS). Где-то года с 2007 плотно все новые проекты (ГИС) делаются нами на PostgreSQL (+PostGIS — пространственное расширение). В области ГИС технологий и геопространственных open source БД — PG (PostgeSQL + PostGIS), по-моему — «задал планку». А ГИС сейчас — очень и очень большая прикладная область. Знаю, что MySQL тоже получил что-то вроде Spatial… никогда не пробовал и даже интереса не возникало. И почему-то в достаточно широкой среде коллег даже речи никогда не шло о MySQL Spatial как альтернативе связке PG +PG. Мне кажется, ГИС функционал PG — важный момент. В этой области MySQL никто и звать его никак. 2 cents.

Насчёт перехода с Oracle на PostgreSQL, немаловажный вклад в пиар, изменения в продукт и веру Яндекс.
Ведь они ж совсем 3-4 года назад очень много писали, выступали про успешную историю перехода постгрес.

Sign up to leave a comment.

Articles