Александр, Тогда надо разбираться, что там "такого в PHP"...вот это очень расплывчато:
клиент шлет запрос, мы ищем в базе данные, обращаемся к мемкешу, обращаемся к редису за массивом исключений, полученные данные (300 строк из mysql) прогоняем в цикле для создания массива, дергаем из массива нужное нам значение, пишем в базу результат, пишем в редис результат и выводим результат к клиенту.
Александр, Вы даже не указали насколько большая БД...
Какие индексы вообще есть...?
Какие запросы вообще выполняются и по каким полям и каким данным...? (понятно что 300 строк выбираются...)
Суть задачи, которую выполняет программа...? Возможно надо менять архитектуру и подход к этой задаче...
Akina, FANTASANTA,
Акина дело говорит...
Только я бы ещё хранил "базовую" цену в отдельном поле...чтобы всегда можно было вернуться или пересчитать от "исходной" цены...
Чтобы кто-то ответил на Ваш вопрос более точно - предоставьте структуру БД и какие в ней индексы щас расставлены + объём данных и какие данные в какой промежуток времени меняются и в каком кол-ве...