Лучший механизм хранения больших объемов данных статической аналитики - PullRequest
1 голос
/ 23 августа 2010

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

На данный момент мы храним эти данные в MySQL с несколькими таблицами по 100 миллионов строк в каждой (мы добавляем примерно 3 миллиона строк в день). Это хорошо при хранении и запросе данных только по метке времени, но становится утомительным при выполнении SELECT с сортировками и особенно при попытке удалить старые устаревшие данные из таблиц. Запрос DELETE с использованием, например, метки времени WHERE <$ 12weeksago для завершения часто занимает несколько часов. </p>

Мы также хотели бы сохранить некоторые данные за пределами 12-недельного периода, что добавляет еще одно предложение WHERE в DELETE для другого столбца. Это замедляет ситуацию дальше.

Какой механизм хранения вы бы порекомендовали на основе этого варианта использования, учитывая большой объем операций чтения / записи и запросов?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2010

Попробуйте Redis или MongoDB.Они оба были разработаны для этого вида использования.

0 голосов
/ 23 августа 2010

Все зависит от того, какой выбор вы делаете.Если база данных NoSQL может это сделать, то это может быть вашим лучшим предположением.

Однако, я думаю, вы, вероятно, сможете значительно улучшить свою производительность, разбив базу данных.Поскольку он уже основан на времени, вы можете легко создавать разделы на день / неделю / месяц, поэтому вам нужно только запрашивать таблицы, которые соответствуют вашему текущему запросу.А удаление старых данных - это простая таблица удаления вместо медленного удаления.

...