Сколько продуктов вы говорите? Потому что, если это менее 10 миллионов, даже не пытайтесь оптимизировать его таким образом.
То, о чем вы говорите, это в основном схема разбиения. Это используется для действительно больших наборов данных. Меньше чем 10 миллионов не приблизятся, хотя, если каждый элемент не является массивным.
Если то, что вы делаете, - это много операций чтения, мало записей о том, что от такого разделения не будет никакой выгоды.
Не оптимизируйте проблему, пока не возникнет проблема.