> "Если в реляционной базе данных, то начисление 1000 пользователей с 4-5 карточками у каждого делается одним SQL-запросом"
> да, так и планировал сделать.
Не советую так делать, если не хотите зафакапить данные.
Даже обход в цикле 5000 тысяч строк не займет больше 5 минут. Зависит от сетапа, конечно.
Делайте поочередную выгрузку, последующее обновление с логированием куда-нибудь в файл, бд, stdout.
В случае, когда что-то пойдет не так, можете заглянуть в логи и увидеть, что 1 и 5000 строчек не обновилась, вместо того, чтобы все 5000 строк не были затронуты.
Если много памяти потреблять будет, то можно воспользоваться батч-запросами или курсором.
Скрипт на 5 минут в день не повлияет на вашу производительность приложения. Делать 1 запросом может и быстрее, но только если вы уже всё отстроили и точно уверены в том, что этот запрос никогда сбоить не будет. Даже после изменения схемы БД другим программистом, который забудет поправить ваш скрипт ;)