На веб-сайте есть потребность выводить некую информацию, предположим - списки товаров.
Товары находятся у разных поставщиков (пользователей), в разных регионах. Информацию об оных надо также выводить в карточке товара.
Т.е. с таблицей products в запросах идут join-ы по нескольким таблицам:
select * from products, users, regions, cities ....
ко всему к этому добавляется
куча условий во where, что создает проблемы по созданию индексов - не получается добиться хороших результатов и найти какой-то оптимальный индекс.
Делать множество запросов на каждый товар вида
$product = Product::findById(123);
$user = User::findById($product->id)
не вариант:
1. Их будет слишком много
2. Программный код уже написан - переписывать долго, есть ORM, которая транслирует результирующий массив от нынешнего запроса в некую коллекцию объектов...
Кэша нет, внедрять - долго.
Какие могут быть еще варианты?