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