понедельник, 1 августа 2011 г.

Колоночная СУБД MonetDB

Внезапно дошли руки пощупать настоящую колоночную СУБД в реализации MonetDB, свежая версия которой в честь этого доступна в Сизифе и t6/branch. Тестировал на старой задаче, которая замечательно укладывается в область применения колоночных СУБД - учет объема ip-трафика по различным критериям (периоды, сети, хосты, пропущено/зарезано). Впечатления смешанные. Оно действительно уделывает тщательно тюненный PostgreSQL:
  • Загрузка данных из текстового файла происходит в 3 раза быстрее
  • Выборка с GROUP BY и полным сканированием большой таблицы - в 7 раз быстрее
  • Выборка небольшого набора строк с кучей WHERE - на удивление даже это чуть вышло быстрее, однако в пределах погрешности измерений
  • Размер БД в 1,5 раза меньше исходного текстового файла
Однако ничего не бывает просто так. Помимо ожидаемых проблем колоночных СУБД с одновременным доступом на запись, которые в данном случае совершенно не актуальны, обнаружились и пара более неприятных вещей, являющихся уже особенностью реализации MonetDB:
Это уже не говоря о значительно более лаконичной по сравнению с PostgreSQL документацией и несравнимо меньшим комьюнити. Поэтому рекомендовать это кому-либо в production я не решаюсь, хотя сам, пожалуй, попробую ;)