Лучшая база данных для многомиллионного хранения / запроса - PullRequest
0 голосов
/ 28 февраля 2012

У нас есть база данных, которая растет около 5 лет.Основная таблица имеет около 100 столбцов и 700 миллионов строк (и растет).

Обычный вариант использования заключается в подсчете количества строк, соответствующих заданному критерию, а именно: выберите count (*) где column1 = 'TypeA' и column2 = 'BlockC'.

Другойсценарий использования - получение строк, соответствующих критериям.

Запросы начинались с небольшим временем, теперь они занимают пару минут.Я хочу найти несколько СУБД, которые позволили бы мне максимально быстро реализовать два варианта использования.

Я изучал некоторые базы данных Column Store и Apache Cassandra, но до сих пор не знаю, какой вариант лучше.Есть идеи?

1 Ответ

0 голосов
/ 28 февраля 2012

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

Вам понадобятся несколько функций, которые помогут ускорить анализ:

  • Материализованные представления.Это, по сути, предварительный расчет значений, а затем сохранение результатов для последующего анализа.MySQL и Postgres (скоро появятся в Postgres 9.3) не поддерживают это, но вы можете имитировать с помощью триггеров.

  • легкий анализ OLAP.Вы можете использовать сервер Mondrian OLAP (java), но тогда Excel не легко с ним общается, а JasperSoft и Pentaho.

  • вы можете изменить схему для более простого анализа OLAP, то есть схему типа «звезда».Хорошая книга:

http://www.amazon.com/Data-Warehouse-Toolkit-Complete-Dimensional/dp/0471200247/ref=pd_sim_b_1

Если вы хотите открытый исходный код, я бы пошел в Postgres (не задыхаясь от больших запросов, таких как mysql), плюс Mondrian, плюс Pentaho.

Если не с открытым исходным кодом, то лучшим вариантом, скорее всего, будет Microsoft SQL Server с Analysis Services.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...