Как присвоить индивидуальные значения пользователя глобальным переменным?
Мне нужно, чтобы в коде telegram-бота были глобальные переменные, содержащие значения конкретного пользователя (например, количество сообщений этого пользователя, время пользования ботом), чтобы эти значения были у каждого пользователя свои, а не общие.
Возможно ли такое сделать без использования базы данных? Если да, то как?
Aztart, до 100к еще надо дожить, ну и можно использовать что-то более легкое сlass with __slots__, namedtuple и так далее, ну про все это можно прочитать в учебниках
Дмитрий Шицков, в таком случае код будет обращаться к файлу бд при каждом любом действии пользователей. Будет ли это, при таком частом обращении, тормозить выполнение запросов?
Aztart, как напишете, так и будет. При токой скорости с которой в бота будут успевать закидывать сообщения - проблем быть не должно никаких. Ну и спевра ваш бот должен перестать быть узким местом. Скорее всего он не на async/await?
Это возможно сделать без БД, но какой в этом смысл? После перезапуска бота все данные слетят. Плюс при большом количестве данных у вас просто разрастется занимаемый объем в ОЗУ.
Лучше все сделать через базу данных. Это корректнее с архитектурной точки зрения. Если переживаете за скорость обработки запросов, то тут все зависит от кода и архитектуры. Можно банальную выборку из таблицы в 100 строк с последующей обработкой написать настолько хреново, что задержки будут сильно заметны. А можно сделать хорошо, тогда обработка сотни тысяч строк БД будет незаметна для пользователя.
Так что если вы переживаете за быстродействие, лучше думайте над архитектурой программы, читайте книги по разработке, экспериментируйте.