Во-первых, многое зависит от организации структуры БД. По факту, если руки растут откуда надо и база организована как надо, то ваши 20 секунд отработки - это какое-то фантастически высокое значение.
Во-вторых, про 1 миллион пользователей вы явно нафантазировали.
В-третьих, да тормозить будет всё, если всё находиться на одной машине.
В-четвёртых, установите на прототип проекта xdebug и с помощью трассировки определите точное время работы скрипта и планируемую нагрузку, а не берите цифры с потолка.