2014-11-03 4 views
0

У меня есть таблица с именами «звонки» с примерно 1 000 000 строк. Каждый день совершаются новые звонки, и я предоставляю сводный ежедневный стат, смотря только на сегодняшние звонки.Таблица кэша против запроса по полной таблице

Итак, сумма всех звонков, сделанных сегодня, сгруппированных по их статусу.

Мой вопрос ...

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

Или факт, что Im фильтрует основную таблицу по дате, просто игнорируйте остальные 990 000 строк. Значение Я не получу никакой производительности, создав таблицу временного кэша, которая будет заполняться ежедневно.

ответ

1

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

Я не думаю, что преждевременная оптимизация - хорошая идея. Если у вас не возникнут какие-либо проблемы, почему бы вам не измениться? :)

Возможно, хорошим первым шагом было бы удостовериться, что столбцы, которые вы используете для фильтрации (возможно, «дата»), индексируются (так что все работает быстрее).

Любая современная база данных более чем способна фильтровать стол с миллионом записей (на самом деле это ничего), так что не волнуйтесь!

+0

Хорошо, мне просто интересно, когда он доберется до 20 000 000, это будет проблемой. Im генерирует около 30 000 строк в день. Даты - это временные метки, так что это действительно не индексируется? – KyleK

+0

20.000.000 все еще ничего для современных rdbms :). Серьезно, не волнуйся. Если у вас есть проблема в будущем, вы можете подумать об этом в то время. В любом случае, всегда полезно убедиться, что у вас есть правильные индексы в правильных столбцах, чтобы избежать большего количества сканирования, чем нужно :). Как было предложено ранее, вы, вероятно, должны добавить индекс в поле «дата». –

Смежные вопросы