1 миллион записей для современных СУБД и современных серверов - нагрузка ни о чем.
У меня миллиарды записей крутятся - и не тормозит.
Если тормозит, то что то вы не так спроектировали.
Гуглите - правильная индексация базы данных.
А для очень больших нагрузок (не объем, не количество данных, а количество запросов, количество пользователей) - шардинг.
Еще вот тут полезняк:
https://habrahabr.ru/post/113298/
Про Tarantool можете не читать. Вам не надо.
А вот в начале - про правильное использование MySQL.
UPD:
Правильный выбор VPS????
У меня на 200 рублевом VPS с небольшим запасом 5000 запросов в секунду обрабатывается.
Все дело в правильном проектировании/реализации всего хозяйства - БД, индексы, запросы, обработка запросов.
UPD:
1) Сколько места будет занимать база с 1 млн подобных записей?
Берешь размер одной записи (суммируешь среднюю длина фамилии, имени, название города и пр.) умножаешь на миллион и умножаешь на 3.
А зачем ты хочешь в БД хранить фотографию? Это не типовая задача для БД.
Может, ты имел ввиду ссылку?
2) Насколько тяжёлые будут запросы к выборке из такой большой базы? Если база увеличится до 10 млн, то и длительность/тяжесть запросов пропорционально в 10 раз увеличится?
Никому не нужны все твои миллионы. Как правило.
Запросы будут выполняться за разумное время только к небольшой части БД.
Чтобы производительно не падала, чтобы не было Full Scan - нужны индексы. Правильные. Делаешь их на основании того, какие у тебя условия во where.
Выше - это про поиск.
А вот передача данных - это да.
Если тебе надо передать 100 записей или 100 000 записей, то, очевидно, что будет дольше. Но это уже не проблема БД. Тебе нужно постараться максимальное количество информации в одном-единственном запросе получать. А все остальное - уже не задача БД.
3) На какие параметры стоит обратить внимание при выборе хостинга/vps/vds под такую базу?
VDS современный, как правило, легко масштабируется вверх. Берешь самый дешевый. Если не хватает - увеличиваешь тариф. Перезагружаешь. Получаешь больше ресурсов.