Я надеюсь, что вы позволите мне указать, что прежде чем вводить в эксплуатацию таблицу с миллионами записей, вы должны серьезно подумать о том, как эти данные будут использоваться, и составить соответствующий план.
В настоящее время происходит то, что ваш запрос не может использовать индексы и, следовательно, сканирует всю таблицу, формируя ответ. Не самый быстрый способ работы с относительно большими таблицами.
У вас есть несколько вещей, которые нужно учитывать, если вы хотите получить лучшее состояние:
- Как быстро он собирает данные?
- Сколько истории вам нужно?
- Насколько детальны ваши требования к отчетности?
- Можете ли вы приостановить запись в журнал для внесения изменений в таблицу?
Если ответ «Нет» на последний вопрос, вы всегда можете создать новую таблицу / решение и начать записывать туда записи ... импортировать старые данные, если / как необходимо.
Детализация отчетов важна, поскольку вы можете, например, сжать данные за сутки в 24 записи. Загрузите текущий день в таблицу загрузки без индекса и затем обработайте его на следующий день в среднем за час. Назовите каждую таблицу загрузки на основе даты выборки, и вы можете удалить старые таблицы как обработанные.
Конечно, почасовая оплата может быть недостаточно мелкой.
В зависимости от ваших потребностей в хранении вы можете рассмотреть некоторые типы многораздельных хранилищ. Это может позволить вам выполнять запросы к подмножествам выборочных данных и просто отбрасывать или архивировать старые разделы, когда они недостаточно длинные, чтобы быть актуальными.
Как бы то ни было, вы, похоже, находитесь на грани того, чтобы иметь какую-то систему массового отбора проб, отчетности и / или мониторинга (особенно, если вы сообщали о различных сайтах или страницах с различными характеристиками). Возможно, вы захотите приложить некоторые усилия для разработки этого, чтобы оно соответствовало вашим потребностям ...;)