Выбор СУБД для проекта?

Интересно мнение хабрасообщества. Кратко о задачах:

— преимущественно операции выборки и вставки

— около 100К клиентов

— движок на PHP, будет крутиться под Apache (Linux)
  • Вопрос задан
  • 7909 просмотров
Решения вопроса 2
DevMan
@DevMan
Берите PostgreSQL — не ошибётесь.
Ответ написан
@IlVin
Однозначно Oracle.
И преимущества его в том, что за знания как его готовить платят больше, чем за знания как готовить MySQL.
А в реальности даже MySQL на MyISAM в боевых условиях миллионы пользователей может обслуживать, если его правильно приготовить под конкретные условия.
Кстати, MySQL тоже Oracle… :)

А теперь шутки в сторону — выбирайте ту БД, для которой можно относительно просто найти разработчиков: Проект вырастет, Вы захотите пойти на повышение и, если Вы сейчас выберете распространенную БД, то в будущем Вы легко найдете себе подчиненного.

Другой фактор выбора — бесплатность. И тут все упрощается: PostgreSQL vs MySQL. Если учесть, что Oracle очень любит деньги, то можно отдать предпочтение PostgreSQL, но тогда Вы принимаете риск того, что проект PostgreSQL может загнуться от недостаточного финансирования.

Вот и получается, что мы для стартапа выбрали БД даже не зная как она там будет использоваться :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 12
@Shizz
Особенно порадовали преимущественные операции выборки и вставки.
Единственное, что можно посоветовать — если требуется строить отчеты по хранимой в БД информации, то реляционные СУБД будут удобнее. На остальное маловато информации.
Ответ написан
Комментировать
akalend
@akalend
программирую
любую, которуб знаешь лучше.
Ответ написан
Комментировать
mark_ablov
@mark_ablov
MySQL + MyISAM вполне потянут.
Ответ написан
Комментировать
Weageoo
@Weageoo
Мне так нравится PostgreSQL, что я бы «пихал» его в каждый проект. Но соглашусь, что инфы маловато.
Ответ написан
Комментировать
sajgak
@sajgak
а вам вообще что нужно? то, что потянет 100к клиентов, имеет драйвер к пыху? Любое sql, nosql решение, файлы в конце концов. Выбор всеже скорее зависит от аспектов работы: нагруженность, надежность, быстродействие. Выбирайте любые 2 и можно будет подобрать решение
Ответ написан
Комментировать
@odmin4eg
Посгре + можно как-то комбинировать с noSQL
оно не сложно для старта и на взлёте можно понять что и как расширять дальше как терпеть высокие нагрузки.

ну и немаловажную роль имеет оптимизаия запросов и схемы БД, а то вон wordpress у меня топит 2х головый сервер с зеонами 2.8 (уровня п4) при 5к уников в сутки. слава мемкешеду который и спасает
Ответ написан
kapitansky
@kapitansky
Если MySQL, то, как мне кажется, движок MyISAM — не самый лучший выбор (из-за потабличной блокировки) — правильным решением будет комбинировать InnoDB и MyISAM (в тех случаях когда будет требоваться выводить большое кол-во инфы, а также пользовать втроенный механизм полнотекстового поиска (тк в InnoDB его нет и придётся «изобретать» свои/использовать чужие механизмы)). Кроме того с версии 5.5 в MySQL реализованна возможность создания noSQL-хранилищ (если вас не устраивает memcache (и прочие) которые легко интегрируются с php).

Также могу порекомендовать обратить своё внимание на СУБД Firebird.

По поводу Ms SQL — очень мощная база, но разумеется с ней удобнее работать с использованием C# и продуктов MS (например Visual Studio) — это позволит существенно сократить время на разработку.

Как вы уже, наверное, знаете php не самое лучшее средство для реализации систем с высокой нагрузкой (здесь придётся повоевать), ну и придётся принимать решение по поводу модели программирования — не думаю, что ОО модель будет лучшим выбором. Возможно стоит обратить своё внимание на Java или C#…

Ну и разумеется структура БД крайне важна — в случае неправильного выбора — не спасёт ни одна СУБД. Но для того, чтобы придти к оптимальной для данного решения структуре — надо понимать что именно вы собираетесь реализовывать, но я, если я правильно понимаю, то у вас нет этого понимания. Если позволите — мой совет начать именно с этого, а не с выбора СУБД.
Ответ написан
@Vorb Автор вопроса
В общем около 30% задач будут схожими с соц. сетью. 100К клиентов — это, по сути, первый этап, дальше будет больше, тысяч десять-двадцать юзеров онлайн база должна держать. Гонки за бесплатностью нет, но Oracle дороговат.
Смотрят в сторону MSSQL и PostgreSQL. Я с MsSQL не работал абсолютно, идея php на linux + mssql (которой, кстати, отдают предпочтение), мне не особо нравится.
Ответ написан
dude_sam
@dude_sam
BI Developer
А что? Обязательно движок ресурса (php,apache,linux) должен быть гетерогенен БД? Что ms sql совсем сдал (мне так не кажется — имхо).
Ответ написан
@Vorb Автор вопроса
DevMan
изначально они задумывали Oracle, все было хорошо, но он оказался слишком дорогим. Поэтому взяли более дешевую ынтерпрайз СУБД — mssql, при этом веб сервер так и остался на linux+apache+php. Мне эта идея показалась корявой, поэтому я задал здесь этот вопрос.
Ответ написан
@immaculate
Программист-путешественник
У вас не требования, а черт знает что. «Операции выборки и вставки» — под это определение любой проект подходит. «100К клиентов» — это столько посетителей сайта или подключений к БД? В секунду, час, месяц?

Хотя, если брать свободные/бесплатные решения, то выбор все равно между MySQL и PostgreSQL. Ну, еще firebird, но у нее непонятно какие преимущества, а недостатков достаточно много.

PostgreSQL всегда превосходил по возможностям MySQL, но до версий 8.1-8.2 отставал по производительности. Уже несколько лет как догнал и даже перегнал, поэтому особого смысла использовать MySQL я не вижу. Причем возможности, которые предоставляет PostgreSQL не какие-то экзотические, а вполне применимые в любом проекте, например, window functions.
Ответ написан
Почему-то все отвечающие акцентировали внимание на выбор между разными, но очень похожими SQL РСУБД. NoSQL вполне себе достойная альтернатива, особенно если подавляющее большинство выборок либо являются выборками по одной таблице со словарями, либо сложными выборками, нацеленными на обеспечение гибкой схемы сущностей (задаваемые пользователями атрибуты и т. п.).
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы