存储查询结果以供以后在会话表或临时表中使用还是一一查询?

时间:2019-06-13 07:14:49

标签: php mysql database codeigniter session

嗨,我正在构建一个在线测验系统,我正在尝试找出优化性能的最佳方法。可以说,问题库中共有100个测验,并将其中的50个随机拉入一组测验。我正在使用Codeigniter框架。

我现在打算做的是从数据库中查询50个问题,并将带有答案的查询问题存储到temp_data()中。用户答案也将存储在临时数据中。当用户完成测验时,所有答案和问题将一发插入数据库。会话被破坏。

那么,还有其他更有效的方法吗?由于cookie允许4kb,因此无法存储。我正在考虑使用另一个表来存储答案,但它涉及到每个页面的查询和问题负载。但是会话也会消耗内存。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试使用CI缓存库,您可以在该库中使用不同的缓存方法文件,redis或memcache,因为您说的是为每个用户选择50个随机问题,而不是创建唯一的缓存文件,将所有问题和答案保存在该文件中,只需将文件名保存在会话或cookie中即可。您可以将每个回答的问题直接保存到数据库中,也可以保存在同一缓存文件中,然后立即保存所有回答的问题。看一下缓存库

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