Стоит ли пробовать MonetDB? - PullRequest
       14

Стоит ли пробовать MonetDB?

8 голосов
/ 15 сентября 2011

Кто-нибудь имел опыт работы с MonetDB? В настоящее время у меня слишком большая база данных MySQL, а запросы становятся слишком медленными. Согласно парадигме, ориентированной на столбцы, вставки будут выполняться медленнее (что я не против), но поиск данных становится очень быстрым Есть ли у меня шанс повысить производительность поиска данных, просто переключившись на MonetDB? MonetDB достаточно зрелый?

Ответы [ 2 ]

17 голосов
/ 16 сентября 2011

У вас есть шанс улучшить производительность вашего приложения.Однако выигрыш в значительной степени зависит от вашей рабочей нагрузки, размера вашей базы данных и вашего оборудования.MonetDB разрабатывается / настраивается в соответствии с двумя основными предположениями:

  1. Ваша рабочая нагрузка является аналитической, т. Е. У вас много (сгруппированных) агрегатов и т. П.
  2. Еще важнее: ваш горячийнабор данных (данные, с которыми вы на самом деле работаете) помещается в основную память вашей системы.MonetDB не имеет своего собственного Buffer Manager, но полагается на ОС для обработки дискового ввода-вывода.Поскольку операционная система (особенно Windows, но и Linux) иногда очень глупа в отношении замены диска, что может стать проблемой (особенно для соединений, у которых заканчивается память).

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

4 голосов
/ 02 июня 2012

Ответ, конечно, зависит от вашей полезной нагрузки, но мой опыт покажет, что в MonetDB все работает быстрее, чем в MySQL. Исключением являются соединения, которые не только кажутся медленными, но и совершенно неуместны при конвейерной обработке, поэтому вам в конечном итоге понадобятся большие объемы памяти для обработки больших. Тем не менее, мой опыт с объединениями в MySQL тоже не был звездным, поэтому я предполагаю, что ваши ожидания могут быть низкими. Если вам действительно нужна хорошая производительность соединения, я бы порекомендовал SQL Server и т. П .; для тех других запросов, которые вы упоминаете в последующих комментариях, MonetDB должен быть великолепным.

Например, учитывая таблицу с примерно 2 миллионами строк, я смог выбрать диапазон для одного столбца (где в диапазоне было около 800 тыс. Строк) и упорядочить по другому столбцу, а ограниченный результат был обработан и возвращен в 25мс. Производительность запросов такого типа, по-видимому, снижается в зависимости от масштаба, но это должно дать вам представление о том, чего можно ожидать в этом масштабе.

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

...