Для приличной реализации нужен фасетный поиск.
Или фасетирование. (
https://en.wikipedia.org/wiki/Faceted_search )
Иерархический поиск тормозит при "Больших Данных".
Слева иерархический, справа фасетный.
Чтобы у пользователя было возможность принимать решение пошагово
(
https://en.wikipedia.org/wiki/Data_drilling ) на основании того сколько марок, брендов, цветов, размеров
или как на скиншоте
производителей и способов доставки соответсвует фильтру и нужно фасетирование.
здесь SQL неподходит, пробуйте готовое речешение (solr, elasticsearch и т.д.)