Подтвердить что ты не робот

Почему nosql с cassandra вместо mysql?

Я работаю над большой базой данных (сотни ГБ), а Mysql теперь дает мне больше или меньше удовлетворения. Я стесняюсь к кассандре при запуске.

Что я хочу знать все раньше, так что этот вид СУБД NoSQL должен быть быстрее MySQL?

Несколько точек:

  • Изменение числа столбцов в строке В Mysql все они должны быть определены заранее. Столбцы установленных в структуре таблицы. NoSQL in, они могут варьироваться. Есть реальная разница в фиксированной структуре? и почему?

  • Не делайте эти отношения полезными для производительности. Хорошо, но я не обязан составлять реляционную таблицу Mysql. Я использую агрегированные таблицы, т.е. таблицы, которые содержат только данные, полученные из других таблиц, I для предотвращения слишком высоких затрат на суставы. Опять же, какие различия в производительности на уровне, если я использую эту модель в Mysql? Например, автор http://www.rackspacecloud.com/blog/2010/05/12/cassandra-by-example/ вставьте X количество раз, когда последователь в сообщении USERLINE-толкатель. Я мог бы сделать это в MySQL.

  • Масштабируемость, масштабируемость, масштабируемость... Мне нравится, действительно ли cassandra позволяет хранить мои данные на разных серверах (без SAN)? Я не говорю здесь о репликации, я говорю об одном сервере NoSQL на нескольких физических серверах.

  • Живите при расчетах. MySQL предоставляет такие функции, как я, как SUM, AVG..., которые очень полезны, чтобы избежать повторной агрегирования моих данных в других таблицах. Я не видел эквивалента Кассандра?

  • Как насчет индексов. На Mysql я индексируем несколько полей в одном. Например, мои таблицы имеют первичный ключ в нескольких столбцах, и я выбираю функциональность. Кассандра о том, как его написать? Конкатенация для одного идентификатора для каждой строки? Я думаю, что я не полностью понял управление индексами. Пересчитаны для интеграции или вверх по течению?

  • Асинхронные запросы. Ложный аргумент, который мне кажется, Mysql можно сделать с помощью INSERT/UPDATE LOW_PRIORITY.

Думаю, я иду. Спасибо, что просветили меня.

4b9b3361

Ответ 1

Я действительно не понимаю, почему люди сравнивают поставщиков данных, таких как Cassandra и MySQL, вместе - вы действительно сравниваете яблоки и апельсины здесь.

Да, в некоторых случаях решения NoSQL могут обеспечить лучшую производительность, чем SQL. Но не забывайте, что они обеспечивают такую ​​скорость - они отказываются от нескольких проверок, которые вы часто считаете само собой разумеющимися в SQL. Например, вы не увидите таких вещей, как транзакции в системе NoSQL, и не будете иметь виды объединений и функции агрегации данных, которые вы получаете как часть системы SQL. Вы получаете очень мало гарантий относительно согласованности данных.

Для 99% приложений это просто не стоит времени и усилий. Если вы являетесь facebook или twitter, где у вас огромное количество неструктурированных данных, где вам все равно, действительно ли вы теряете некоторые данные в случайном порядке или имеете задержки в отношении того, когда данные доступны после его установки, NoSQL просто отлично. Однако для подавляющего большинства приложений вы все равно должны придерживаться SQL.

Что касается масштабируемости, если огромный сайт, такой как Qaru или Ebay, может работать поверх SQL, я не понимаю, почему ваше приложение не может работать поверх SQL.

Ответ 2

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

Приложения NoSQL сильно отличаются от традиционной структуры SQL. SQL по умолчанию настроены на производительность OLTP с нормализованными структурами схем и возможностью иметь запросы на присоединение и т.д. С другой стороны, NoSQL - хорошая быстрая структура чтения/записи. Хорошим примером может служить фид активности на twitter/facebook (я не знаю, использует ли Twitter/FB NoSQL, я просто беру пример).

Ответ 3

playOrm помогает все больше и больше OLTP-систем внедряться поверх систем noSQL. Это очень похоже на SQL, но есть различия. Вам нужно разбить таблицы, которые, как ожидается, вырастутся до ОЧЕНЬ БОЛЬШИХ размеров, а затем запросить их в этих разделах. Вы даже можете делать соединения на разделах. Вы сохраняете размеры разделов того же размера, что и обычные таблицы РСУБД, и вы можете масштабировать свое желание.

поэтому для вас вопросы индексирования и расчета, я думаю, все больше инструментов будет построено на nosql-системах. В любом случае, это может быть одним из решений ваших проблем.