Масштабируемость MySQL Using как База данных Ключа/Значения

Мне интересно знать влияние производительности использования MySQL, поскольку база данных значения ключа по сравнению с говорит Redis/MongoDB/CouchDB. Я использовал и Redis и CouchDB в прошлом, таким образом, я очень знаком с их вариантами использования и знаю, что лучше сохранить пары ключ/значение в, говорят что NoSQL по сравнению с MySQL.

Но вот ситуация:

  • объем наших приложений уже имеет много таблиц MySQL
  • Мы размещаем все на Heroku (который только имеет MongoDB и MySQL, и в основном с 1 типом дб на приложение),
  • мы не хотим использовать несколько различных баз данных в этом случае.

Так в основном я ищу некоторую информацию о масштабируемости наличия ключа/таблицы значений в MySQL. Возможно, в трех различных произвольных уровнях:

  • 1 000 записей в день
  • 1 000 записей в час
  • 1 000 записей в секунду
  • 1 000 чтений в час
  • 1 000 чтений в секунду

Практический пример находится в создании чего-то как Средство отслеживания веб-аналитики MixPanel В реальном времени, которое требовало бы записи очень часто в зависимости от трафика.

Wordpress и другое популярное программное обеспечение используют это все время: Сообщение имеет модель "Meta", которая является просто ключом/значением, таким образом, можно добавить произвольные свойства к объекту, который может искаться.

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

Каково Ваше взятие?

8
задан marc_s 20 June 2010 в 07:58
поделиться

2 ответа

Нет сомнений в том, что использование решения NOSQL будет быстрее, поскольку оно проще.
NOSQL и Relational не конкурируют друг с другом, это разные инструменты, которые могут решать разные проблемы.
При этом для 1000 записей в день или в час у MySQL не будет проблем.
Для 1000 в секунду вам понадобится какое-то модное оборудование, чтобы добраться туда. Для решения NOSQL вам, вероятно, по-прежнему потребуется некоторая распределенная файловая система.

Это также зависит от того, что вы храните.

2
ответ дан 5 December 2019 в 21:16
поделиться

Я бы сказал, что вам придется запустить свой собственный бенчмарк, потому что только вы знаете следующие важные аспекты:

  • размер данных, которые будут храниться в этой таблице KV
  • уровень параллелизма, которого вы хотите достичь
  • количество существующих запросов к вашему экземпляру MySQL

Я бы также сказал, что в зависимости от требований к долговечности данных, вы также захотите протестировать несколько движков: InnoDB, MyISAM.

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

2
ответ дан 5 December 2019 в 21:16
поделиться
Другие вопросы по тегам:

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