И если каждый раз доставать все из БД, то падает скорость загрузки
Что значит падает скорость? Вы выводите одновременно несколько миллионов товаров? Посмотрите на запросы к БД, в нормальном режиме, при выборе из 3 полей, скорость не должна снижаться.