MySQL vs PostgreSQL?

Кратко о проекте:
— выборка по большому количеству условий
— много инсертов
— высокие нагрузки
— без права на ошибку

MySQL или PostgreSQL?
Комплексное решение?
Другие варианты?
NoSQL?
  • Вопрос задан
  • 52476 просмотров
Решения вопроса 1
toxicmt
@toxicmt
CTO at hexlet.io
Однозначно Postresql. У mysql после появления в девятой версии репликации из коробки пропал последний плюс mysql.

Постгря намного более продвинутая база данных, перечислять ее возможности можно бесконечно, и вот пара вещей которые очень и очень полезны.
— Индексы по выражению
— Частичные индексы
— Неблокирующее обновление индексов
— Супер быстрое удаление и добавление колонок в таблицах любого размера
— По опыту во много раз меньше дедлоков при больших нагрузках
— Несколько типов индексов
— Количество типов просто огромно, плюс пользовательские типы
— Точнее соответствует стандарту ANSI и гораздо строже относится к входным данным
— чеки, правила, тригеррные функции
— Модуль полнотекстового поиска (мускульный только для myisam и по возможностям нервно курит в стороне)!
— Транзакционный ddl!
— Возможность писать процедуры практически на любом языке, мощный внутренний язык PL/pgSQL (в мускуле убожество с кучей ограничений)
— Намного лучше работает на многоядерных системах
— Продвинутый оптимизатор

и многое многое другое другое.
Ответ написан
Пригласить эксперта
Ответы на вопрос 14
@shagguboy
The AdWords system was initially implemented on top of the MySQL database engine. After the system had been launched, management decided to use a commercial database (Oracle) instead. The system became much slower, so eventually it was returned to MySQL [3]
Ответ написан
Vasya_Sh
@Vasya_Sh
Как известно MySQL пользуется для хранения основного объема информации facebook.com и много других сайтов с более ограничеными ресурсами — например lenta.ru
От ошибок страхует не СУБД, а формат хранения данных. Храните оперативные данные в памяти, скидывайте по таймеру в innodb-таблицы.
Выборка по большому количеству условий — это минус архитектуре. В высоконагруженом проекте нормализация стоит на втором месте за производительностью, лучше разбейте сложные таблицы на простые, даже если придется где-то вместо одного сложного запроса сделать несколько простых. Зато при простых запросах не придется дергать слишком большие таблицы.
Ответ написан
@Masterkey
согласно libastral, сегодня я отвечу noSQL, но завтра все может измениться.

Описывайте проблему и не стоит заставлять нас обращатся к этой библиотеке.
Ответ написан
JeanLouis
@JeanLouis
PostreSQL — объектно-реляционная база данных.
MySQL — реляционная база данных.

Посмотрите чем вам это грозит.

Базовый синтаксис запросов одинакой. Поэтому можете установить две базы и протестировать.

Так же обратите внимание что в MySQL может быть использован разный тип таблиц (MyISAM, InnoDB etc.)
Лично я работал с обоими базами данных, PostreSQL показался мне удобнее в плане реализации логики обратки данных на стороне БД.
Ответ написан
@odmin4eg
У каждой БД есть свои +
и надо лишь правильно воспользоваться ими.

есть же байка, что гугл работает на майскуле, фейсбук также и ещё много кто и не жалуется.

также есть куча примеров когда сайт с 1000 посетителей не справлялся на мускуе, а вот с посгресом полетел.

так что я за умное использование любого инструмента, будь то молоток то кувалда, для себя решил, что следующий свой проект буду делать а фиг знает на django а там пофигу с одной в другую БД прыгнуть не далеко
Ответ написан
@Monca
Задачи не описал, поэтому бери что лучше всего знаешь. Я бы взял firebird
Ответ написан
MongoDB

если хочется таки РСУБД, то PostgreSQL
Ответ написан
@pooh1
с Postgres проблема в том, что мало хостингов работают с ней, везде идет как доп. опция.
Ответ написан
@PyKaB
Лучше всего то, чем Вы пользовались.
Одной из убийственных фич Postgres может стать возможность написания очень мощных функций и триггеров, что может стать решающим моментом, если БД сервер удаленный и хочется сократить трафик
Ответ написан
Foror
@Foror
Графоман
Подойдёт любая популярная система. Берите и тестируйте оба варианта, если без права на ошибку.
Ответ написан
Если выберите NoSQL, то от автоматического «без права на ошибку» (поддержки транзакций и целостности) скорее всего придётся отказаться и реализовывать её ручками, зачастую отказываясь от кэширования записи. Основное преимущество NoSQL я вижу когда архитектура модели мало использует связи (особенно многие-ко-многим), но часто «опускается» до композиции и агрегации или необходимости работать с иерархией наследования классов/объектов модели.

Заметного увеличения, равно как и падения, производительности от перехода от дефолтных для debian настроек MySQL к дефолтным же настройкам PostgreSQL простой заменой в ORM не заметил
Ответ написан
@mirexes
Может будет кому интересно.
База MySql 5.7 суммарный объем базы 100Гб самая большая таблица
5aecf5b054416282604879.png
из этой таблицы обычно идет запрос по 3-м условиям.
все это работает на машине
5aecf62108671105320965.png
Суточное посещение сайта
5aecf6f66bdc6314159027.png
Все работает достаточно шустро
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы