Сравнение с Postgresql

  • Автор темы elf-keeper
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

elf-keeper

#1
Приветствую!

У меня тут возникла проблема выбора. Лично я хорошо знаком с mysql на практике и по учебной линии хорошо знаю mssql и oracle.
Есть задача: организовать веб-проект.
Обязательная кластеризация sql бд (выбор между mySQL и PostgreSQL. mssql и oracle покамест не рассматриваются в виду ограниченности бюджета проекта). Кластер минимум на 2 сервера.
Минимум 2 app-серверов.
Минимум 2 веб-серверов.

Если бы я делал проект один - то у меня бы вопросов с выбором не возникало. Но я делаю не один, потому приходится выбирать БД. В интернете я нахожу весьма странную ситуацию. Сторонники PostgreSQL не считают mySQL вообще БД. Активных сторонников mySQL не наблюдается. Может действительно PostgreSQL лучше mySQL настолько что и сравнивать нет смысла.

У меня есть личный проект. Там в БД mySQL несколько млн записей и оно каждый день их перетасовывает, сравнивает, обновляет и т.п. очень быстро и стабильно, раз в 10-20 минуту идёт большая выборка данных каким-то клиентом 1-10 раз в минуту идёт мелкий запрос. Всё это выполняется быстро и стабильно - главное пользователи довольны.

Лично я mуSQL очень доволен. Но тут ситуация немного иная. В будущем проекте будет миллиарды записей. И обращений бд предполагается несколько тысяч в секунду при пиковой нагрузке и с десяток в секунду в штатном режиме. Есть мнение что mySQL с этим справляться не будет, равно как нет утверждения, что с этим будет справляться PostgreSQL. Хотелось бы услышать мнения по этому вопросу. Может тесты какие-то специальные есть? Результаты тестов?

Заранее большое спасибо.
 
A

Andromeda

#2
Мое мнение таково: у каждой системы управления БД свои плюсы, все зависит от назначения.
Если надо, чтобы работало быстро (особенно с веб серверами), то - MySQL.
Если нужно приложение с нормальной поддержкой фич баз данных (транзакции, хранимые процедуры, триггеры, вьюшки и т.д.), то - PostgreSQL.

p.s. Разработчики отмечают, что постоянно улучшают свои БД, поэтому, мол, пока мы сравниваем, они уже новую версию выкатывают... :(
 
S

Siarhei Berdachuk

#3
... Может тесты какие-то специальные есть? Результаты тестов?
Есть специализированный проект по тестированию СУБД
http://osdb.sourceforge.net

Мое личное мнение, вам нужен Oracle, ну а при отсутствии средств PostgreSQL.
Просто обычно люди некорректно сравнивают производительность СУБД.
А конкретно для MySQL достаточно включить поддержку транзакций, и ее мнимая скорость очень существенно падает. Думаю, что на ваших объемах данных это будет сильно заметно.
Да и внешних ключей там раньше не было (сейчас точно не скажу), что соответственно
не гарантирует целостности данных. MySQL хорошо использовать разве что на форумах, и там где данные не столь критичны. Одним из ключевых факторов тут является ее наличие практически у любого хостера.

С PostgreSQL ситуация получше, мы специально тестировали ее в сравнении с Oracle, данные офишировать не имею права, но Oracle реально впереди планеты всей.
Хотя PosgreSQL как бесплатная альтернатива вполне ничего. Мы используем эту СУБД на достаточно больших объемах данных, не скажу что все гладко. Были проблемы, когда полетели жесткие диски, но в общем то и это решаемо.

В заключение отмечу, что очень важно грамотно спроектировать модель данных, желательно мониторить запросы и оптимизировать узкие места. Реально можно "плохим" запросом положить и Oracle.

Успехов :(
 
B

Barmutik

#4
Я как-то в реальности НИ разу не сталкивался с проектом в котором требовалось бы хранение
миллиарды записей.
. Миллионы, десятки миллионов да .. но миллиарды .. тем более во множественном числе... а учитывая требуемый параметр количества обращений к БД
тысяч в секунду при пиковой нагрузке
я как-то вообще начиаю сомневаться что какая-нибудь универсальная СУБД сможет обеспечивать такую производительность...

Или как вариант потребуется настолько дорогое аппаратное обеспечение, что говорить о цене программного обеспечения просто не имеет смысла...

Для: elf-keeper
Если не секрет.. то в двух словах расскажите о проекте где требуется хранение такого объёма информации...
 
P

Pasha

#5
Миллиард записей, тысяча обращений. Терабайты данных в секунду.
 
Статус
Закрыто для дальнейших ответов.