Фреймворк тут вообще не при чём. Это вопрос правильной организации структуры БД, настроек, и индексов.
1 миллион - это не много. Я бы всё же взял PostgreSQL, и меняющиеся характеристики хранил бы, в jsonb поле c GIN индексом на нём.
Остальное зависит от конкретных задач, но у меня на одном проекте, поиск по 600к таких индексированных JSON'ов занимал ~10мс.
Так что и с миллионом проблем не будет. А вот при кривой структуре, и запросах... Я видел магазин который при 70к товаров пагинацию генерил 4 минуты. На шаред хостинге правда, на простеньком сервере было уже 8 секунд, что впрочем тоже ни в какие ворота.