База данных и движок БД для социального сайта
Для сайта с интенсивным пользовательским контентом с профилями пользователей, живыми лентами, фото / видео / контентом и т. Д. Какую БД использовать и какой механизм БД? Конечно, Oracle/Microsoft SQL вышли, потому что они не являются бесплатными (или дешевыми). Я использую MySQL с MyISAM, но это приведет к проблемам с производительностью на социальном сайте. Даже использование InnoDB может не помочь производительности. Итак, во-первых, какую БД лучше использовать и какой движок - от бесплатного до платного?
Основное беспокойство вызывает производительность прямых трансляций, плюс большое количество данных отслеживается и анализируется с помощью аналитики.
Поскольку это запуск, затраты на оборудование ограничены, поэтому здесь нет фермы оборудования для поддержки производительности, поэтому мы ищем достойную альтернативу в течение первых двух лет.
3 ответа
Если ваша пользовательская база достаточно велика, чтобы требовать высокопроизводительной БД, пропускная способность и плата за хранение не будут дешевыми; зачем экономить на базе?
В MS SQL есть бесплатные и / или дешевые версии, которые снижают производительность. Я всегда начинаю с них, и если сайт взлетает, я обновляюсь. Возможно, Oracle предлагает нечто подобное.
Изменить: я должен был сказать в начале, что вы вряд ли перерастете MySQL в ближайшее время, и что весь этот вопрос может быть случай преждевременной оптимизации.
Если вы новичок, вы, в конце концов, сможете позволить себе вещи Microsoft. Проверьте их программу BizSPark, которая дает вам программное обеспечение бесплатно в течение нескольких лет.
Я не уверен, что согласен с тем, что MySQL - не лучший вариант. FaceBook не использует MySQL? Вы ожидаете быть больше?
Если вы думаете, что InnoDB будет слишком медленным для вас, в MySQL есть и другие варианты механизма хранения. Например, вы исследовали TokuDB?
Рассматривали ли вы хостинг, такой как http://linode.com/, вместо собственного оборудования? Это может быть лучше подходит для вашего профиля денежных потоков. Если вы действительно чувствуете, что загрузка БД обременительна, у вас может быть выделенный или несколько серверов. Начните с выделенного блока БД и увеличьте масштаб оттуда. Вы также можете использовать облачный сервис, такой как Amazon EC2.
РЕДАКТИРОВАТЬ: Я только что понял, что у Tokutek есть социальный пример: http://tokutek.com/customers/a-social-networking-case-study/
Для меня это звучит так, как будто вы вряд ли перерастете MySQL в ближайшее время. Если вы становитесь достаточно занятыми, чтобы нуждаться в чем-то вроде TokuDB, вы можете поблагодарить меня несколькими акциями.:-)
Я бы порекомендовал получить облачную учетную запись для файлов и, возможно, выделенный сервер для БД (MySQL и MyISAM).
Вы можете ограничить свои расходы на облачное хранилище файлов, но повысить производительность, выделив выделенный сервер для БД, увеличив вычислительную мощность и объем памяти.