Как снизить нагрузку на БД?
Берем какой-нибудь memcached.
У запроса в бд, есть какой-нибудь идентификатор для выборки.
Алгоритм такой:Смотрим в кэш по этому идентификаторуВ кэше есть данные, отдаем сразуЕсли там пусто, делаем запрос к БД, сохраняем результат в кэш, указывая "время жизни ключа" и отдаем данные
Ложите все в очередь и уже потом разбираете хиты большими порциями.