А тут я не понял - при чём тут обновления в исходных таблицах и расчёт агрегированных данных? Например, по норме расчёт агрегированных данных для почасовой статистики должен делаться раз в час, а исходные данные пусть меняются хоть 1000 раз в секунду.
И надеюсь, ты не путаешь кеш на результаты запросов и буфер в InnoDB (innodb_buffer_pool_size). Буфер используется для работы с БД в RAM, а не на диске. При этом, надеюсь, innodb_flush_log_at_trx_commit в 2 установлен, чтобы буфер не сбрасывался на диск при каждом запросе.
Если же ты подразумевал, чтобы рассчитывать статистику каждый раз (при просмотре), то тут уж ... только если "сам себе злобный буратино"

Хотя, кто его знает - бывает, что заказчики хотят и такое.
Этого я не понял.

Почему нельзя просчитать всех сразу? Что там такого специфичного, что нельзя в запросе посчитать. 10000 это всего юзеров или всего за один расчёт?
У меня, например, агрегатная статистика вообще просчитывается в реальном времени, при каждой генерации страницы. Это 2 из ~20 запросов на каждую страницу при времени генерации страницы < 0.1 сек. Конечно, большая часть SELECT берётся из кеша. UPDATE кеш не пользует, естественно. Всего на запросы уходит < 0.02 сек (без кеша - ~0.05).
Так всё-таки, сколько записей (реально) у тебя изменяются? (всего за расчёт, который у тебя, как я понял, раз в час делается) И сколько записей (реально!) обрабатывается? (т.е. считывается, по которым идёт расчёт, а не те, что всего в таблице)
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru