rwyjj 2016-08-19 09:14 采纳率: 0%
浏览 3504
已结题

从数据库查询大量数据效率太低

现在在做一个背记英语单词的项目,使用的是mysql数据库,单词记录有一万五千多条,用户学习单词时要根据record记录表(包含用户id和单词id)查询出所有用户未学习过的单词和已学习过的单词。有两个功能需要实现,一个是展示10个用户没有学习过的单词,另一个是展示用户学习过的单词和未学习过的单词各5个。因为数据库中单词记录较多,到需要展示的时候再去查询就需要等好几秒,用户体验极差。该怎样去提高用户体验呢?我自己的解决方案是:因为查询单词必须用到用户id,所以不能在服务器启动的时候去查询数据,我是在用户登录成功跳转到主页之前将用户学习过的单词和未学习过的单词查询出来保存到两个List集合中(当然,这里查询的单词只是查出单词id而已),然后将两个集合保存到session域中,需要用到的时候直接取出就可以。这个方案存在两个很大的问题:一,登录时间延长了好几秒,用户体验差;二,将两个集合保存到session域中,虽然我也不知道会不会出什么问题,但总感觉不好(知道的还烦请指教一下)。各位有没有什么比较好的解决方案,还望不吝赐教

  • 写回答

8条回答 默认 最新

  • carey_OoO 2016-08-19 09:33
    关注

    直接查出10条 不查全部可以不,如果你把1万5的记录都缓存起来,用户一多内存就炸了

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿