利用缓存复用复杂查询结果,提升性能
问题:用户筛选模块,查询性能比较慢?
分析:
(A)他第一次查询的时候 我只是记录了数量 并没有将会员信息存储
(B)然后点击参加活动的时候 我又用刚刚的条件去查询了一遍
(C)然后再将会员信息 与 活动建立关联关系 并且发送到老系统
(B)然后点击参加活动的时候 我又用刚刚的条件去查询了一遍
(C)然后再将会员信息 与 活动建立关联关系 并且发送到老系统
解决方案(A):
(1)查询数量的方法,修改成查询数据(查询出符合条件的用户数据),返回结果集大小
(2)使用UUID作为key,将刚刚查询的结果存储到缓存中,并且将UUID返回到页面
(3)当用户点击确认加入活动的时候,将UUID发送到后台,后台从缓存中获取用户数据,减少查询
解决方案(B):
使用Ehcache,将查询条件和结果缓存,如果用户在1分钟内,再次点击查询,直接从缓存中获取数据。