Кассандра или MySQL 5? Что будет хорошо для будущего? - PullRequest
7 голосов
/ 09 апреля 2010

Должен ли я использовать Cassandra для 100 000 пользовательских проектов? В MySQL 5 у меня есть полнотекстовый поиск и разбиение таблиц. Я запускаю систему вопросов и ответов, такую ​​как SO, с CodeIgniter. Это переход от vBulletin к новой системе. В старой системе vBulletin у меня было 100 000 пользователей, а общее количество постов - около 80 000. В ближайшие 3 или 4 года, я ожидаю, что будет все больше и больше пользователей и сообщений. Итак, я должен использовать Cassandra вместо MySQL 5?

Если я использую Cassandra, мне нужно перейти с Grid-Service на выделенный виртуальный хостинг в Media Temple. Поскольку Cassandra не входит в состав хостинговой системы, мне нужно использовать VPS или DV серверное решение. Если я использую MySQL, хостинг не является проблемой, но как насчет производительности, скорости поиска.

Кстати, а какую базу данных использует переполнение стека?

Ответы [ 3 ]

8 голосов
/ 09 апреля 2010

Из предоставленной вами информации я бы предложил придерживаться MySQL.

В качестве дополнительного примечания, Facebook сначала использовал MySQL и в конечном итоге перешел на Cassandra только после того, как хранил более 7 терабайт входных данных, более 100 миллионов пользователей.

Википедия также обрабатывает сотни гигабайт текстовых данных в MySQL.

6 голосов
/ 09 апреля 2010

Вы говорите 100 000 пользователей - но сколько одновременных пользователей?

Cassandra не встроена в хостинговую систему

Использование размещенной службы на одном сервере предполагает очень маломасштабная операция - и вы, очевидно, ограничены вашим бюджетом.Конечно, нет никакого преимущества в использовании Cassandra на одном узле сервера.

В mysql 5 есть полнотекстовый поиск

Что не очень масштабируемое решение - вам определенно следует подумать об использовании нормализованного поиска (что, я полагаю, у вас будетделать, если вы все равно переходите на Cassandra).

Учитывая, что вы можете легко масштабировать решение MySQL для нескольких баз данных, используя репликацию, прежде чем вы даже подумаете о полностью кластеризованном решении, и у вас явно не будет бюджета насделайте свой собственный хостинг, переход на Cassandra кажется огромным перебором.

1 голос
/ 10 апреля 2010

Я бы НЕ рекомендовал вам использовать кассандру в вашем случае по следующим причинам:

  1. Кассандре нужно хорошо понимать приложение, которое вы создаете. Вносить изменения и выполнять сложные запросы к данным, хранящимся в Кассандре, будет намного сложнее. SQL более гибок и прост в обслуживании. Cassandra хороша, когда вам нужно хранить огромные объемы данных, и когда вы точно знаете, как данные, хранящиеся в Cassandra, будут доступны и отсортированы.

  2. Mysql отлично работает для миллионов строк, если правильно построены индексы.

  3. Если вы решите некоторые узкие места в будущем с помощью mysql, вы можете посмотреть, в чем именно состоят ваши проблемы, и масштабировать их, используя кассандру. Я имею в виду, что вы должны быть в состоянии объединить оба подхода: SQL и noSQL в одном проекте.

Что касается полнотекстового индекса mysql, могу сказать, что он бесполезен. Я имею в виду, что он работает слишком плохо, чтобы использоваться в проектах с высокой нагрузкой. Посмотрите на sphinxsearch.com, отличную реализацию полнотекстового поиска для баз данных sql.

Но если вы ожидаете, что ваша система будет быстро развиваться и будет обслуживать миллионы пользователей, вы должны рассмотреть cassandra с самого начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...