Hola Highlander (jamás pensé hablar contigo xD xD A manera de broma

)
Bueno, asumo que la base es la misma como si fuera un catálogo de producto... Podrías antes de cargar toda esa cantidad de registros, hacer una interfaz para que el usuario seleccionara previamente la categoría a la que pertenece el producto. Me entiendes??
La idea es que seleccione primero la categoría y dependiendo de eso cargar los productos, con eso ganarás un poco de tiempo. Lo mas probable, para esa cantidad de registros es utilizar índices.
Saludos