Как сохранить данные сеанса без перегрузки базы данных

#mysql #django

#mysql #django

Вопрос:

У меня есть база данных приложения flashcard, которая будет записывать прогресс пользователя по мере того, как они проверяют себя. Пользователи будут отвечать на вопросы «да» / «нет» / «возможно» со скоростью около 5-10 секунд на ответ. Проблема в том, что некоторые пользователи будут продолжать этот сеанс вопросов / ответов в течение длительных периодов времени, и я не хочу, чтобы они теряли свой прогресс, если что-то их отвлекает, и они закрывают приложение на полпути через учебный сеанс.

С одной стороны, я мог бы по каждому вопросу отправлять запрос в базу данных для обновления прогресса пользователя каждый раз, когда пользователь отвечает на вопрос. С другой стороны, я мог бы сохранить весь прогресс где-нибудь на стороне клиента (файлы cookie?) а затем обновите базу данных один раз в конце сеанса. Я боюсь, что первый вариант не масштабируется, если тысячи пользователей используют сайт одновременно. Однако при втором варианте я уверен, что прогресс будет потерян, если пользователь неожиданно закроет сеанс.

Какой наилучший способ постоянно сохранять прогресс пользователя без перегрузки базы данных?

Комментарии:

1. Вы никогда не будете перегружать хорошо структурированную базу данных 1 запросом в 5-10 секунд. 1000 пользователей за 5-10 секунд также не будут иметь значения. Убедитесь, что вы сохраняете / обновляете результаты с помощью первичного / вторичного ключа.

2. Должно быть, я недооцениваю возможности баз данных mysql. Спасибо за ваш вклад.