Использование cron - это самый простой способ решения проблемы.
Одна веская причина не использовать cron - вы будете генерировать статистику, даже если никто не запросит ее.
В зависимости от того, сколько времени потребуется для генерации данных (вы можете захотеть отслеживать предыдущие подсчеты и просто добавить отсчеты, где отметка времени больше, чем предыдущий прогон - с соответствующими индексами!), Тогда вы можете вызвать это когда приходит запрос и данные выглядят как устаревшие.
Обратите внимание, что вы должны хранить статистику в базе данных и подумать о том, как реализовать мьютекс, чтобы избежать одновременных попыток обновления кеша несколькими запросами.
Однако правильным решением будет обновлять статистику каждый раз, когда добавляется запись. Если у вас очень большие объемы трафика, накладные расходы будут минимальными. Хотя «SELECT count (*) FROM some_table» будет работать очень быстро, вы, очевидно, столкнетесь с проблемами, если не захотите просто подсчитать все строк в таблице (например, если ведутся блоги и ответы). в той же таблице). Действительно, если бы вы внедрили обновление статистики в качестве триггера для соответствующих таблиц, вам бы не пришлось вносить какие-либо изменения в ваш код PHP.