Если известно конечное число характеристик - делать одну таблицу, в идеале - поля должны быть уже известны. Тогда проще работать с индексами и не нужно подключать связи таблиц. Это серьезно ускорит работу бд.
1. Структура будет зависеть от среды, нода джанго или пых - все они будут по разному подходить к задаче в силу ограничений/преимуществ среды. По пыху - взять ченть полуготовое, например ларавел, хотя из задачи торчат уши хайлоада, тут в идеале нужно писать свой шустрый велосипед. Но мвц - без сомнений. По остальным - не в курсе что сейчас модно.
2. Нода и джанга - не сервера, а фреймворки.
3. Я бы смотрел на мускуль. При правильной настройке скорость работы современных рбд практически идентична, а информации по настройке/работе с мускулом просто через край. Комюнити широкое и достаточно отзывчивое, спецов на рынке есть. Если нужно надежно/быстро/поддерживаемо то в экзотику типа мемористораж баз я бы не кидался. Результат мгновенно - это только у пургена, любая программная компонента имеет задержку, на поиск, индексацию, внутреннюю передачу данных, структурирование и прочую накладную фигню.
PS: кто такая логинация???