Я создаю приложение, которое требует хранения и запроса очень большого количества данных с метками времени. В частности, это данные аналитического типа, в которых конкретный «набор» может содержать до 100 отдельных точек данных, связанных вместе с помощью общей метки времени. Эти данные являются статическими, поскольку они никогда не изменятся после сохранения, но могут запрашиваться несколько раз, прежде чем они будут удалены из базы данных (в настоящее время мы храним только 12 недель данных).
На данный момент мы храним эти данные в MySQL с несколькими таблицами по 100 миллионов строк в каждой (мы добавляем примерно 3 миллиона строк в день). Это хорошо при хранении и запросе данных только по метке времени, но становится утомительным при выполнении SELECT с сортировками и особенно при попытке удалить старые устаревшие данные из таблиц. Запрос DELETE с использованием, например, метки времени WHERE <$ 12weeksago для завершения часто занимает несколько часов. </p>
Мы также хотели бы сохранить некоторые данные за пределами 12-недельного периода, что добавляет еще одно предложение WHERE в DELETE для другого столбца. Это замедляет ситуацию дальше.
Какой механизм хранения вы бы порекомендовали на основе этого варианта использования, учитывая большой объем операций чтения / записи и запросов?