Сохранение результата запроса для последующего использования в сеансовой или временной таблице или запрос по одному? - PullRequest
0 голосов
/ 13 июня 2019

Привет! Я строю систему онлайн-викторин и пытаюсь найти лучший способ оптимизировать производительность.Допустим, в банке вопросов есть всего 100 тестов и случайным образом вытяните 50 из них в набор тестов.Я использую платформу Codeigniter.

Теперь я планирую запросить 50 вопросов из базы данных и сохранить вопрос с ответом в temp_data ().Пользовательский ответ также будет сохранен во временных данных.Когда пользователь завершит тест, все ответы и вопросы будут вставлены в базу данных одним выстрелом.Сессия уничтожена.

Итак, есть ли более эффективный способ или это так?Так как куки разрешено 4kb, поэтому хранить их невозможно.я думаю использовать другую таблицу для хранения ответа, но это включает запрос для каждой страницы и загрузку вопроса.Но сессия вроде съедает память тоже.Любая рекомендация?

1 Ответ

0 голосов
/ 13 июня 2019

Попробуйте использовать библиотеку кеша CI. С этой библиотекой вы можете использовать различные методы кеширования, redis или memcache, так как вы сказали, что выбираете случайный 50 вопросов для каждого пользователя, а не создаете уникальный файл кеша, сохраняете все вопросы и ответы в этом файле, просто сохраните имя файла в сессии или куки. по каждому ответу на вопрос вы можете сохранить непосредственно в базе данных или сохранить в том же файле кеша, позже сохранить все ответы на вопрос сразу. взглянуть на библиотеку кеша

https://www.codeigniter.com/user_guide/libraries/caching.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...