关于JAVA编写的WEB程序多次并发访问数据库的问题
关于JAVA编写的WEB程序多次并发访问数据库的问题我们有个实时报表页面会30秒刷新一次,该页面可能同时有100人开着。旧的逻辑是该页面利用<metahttp-equiv...
关于JAVA编写的WEB程序多次并发访问数据库的问题
我们有个实时报表页面会30秒刷新一次,该页面可能同时有100人开着。
旧的逻辑是该页面利用<meta http-equiv="refresh" content="30" />来控制刷新,后端bean执行select语句查询然后在bean里拼接HTML返回页面显示。这样的实现方法会不会对数据库加重负担?
我想到一个解决方式,就是用一个对象来定时执行select语句和拼接HTML,然后返回一个静态的变量,用页面bean去获取该静态变量。
不知道这样算解决问题么?或者有什么更好的解决办法? 展开
我们有个实时报表页面会30秒刷新一次,该页面可能同时有100人开着。
旧的逻辑是该页面利用<meta http-equiv="refresh" content="30" />来控制刷新,后端bean执行select语句查询然后在bean里拼接HTML返回页面显示。这样的实现方法会不会对数据库加重负担?
我想到一个解决方式,就是用一个对象来定时执行select语句和拼接HTML,然后返回一个静态的变量,用页面bean去获取该静态变量。
不知道这样算解决问题么?或者有什么更好的解决办法? 展开
3个回答
展开全部
有一个思路,你可以用ajax局部刷新数据,不刷新整个页面,同时用缓存,例如第一个30秒的数据放入缓存,页面从缓存里取数据,第二个30秒,你从数据库取出数据后,写个对象对比的方法,来比对新数据和第一个30秒存入缓存的数据,如果数据没有改变,那页面什么操作也不用做,因为数据没变化,刷新也没意义,如果第二个30秒数据发生变化,那么就刷新缓存为第二个30秒的数据,并且局部刷新页面数据。数据库的查询是避免不了的,所以没发减轻数据库的压力,只能是优化数据的显示。就象我上边提到的,如果前后2个30秒数据没有变化,那么就不要刷新页面。
展开全部
你把前台页面刷新,与后台定时查询数据两个刷新分开来。
旧的方案,每隔30秒的自动刷新保持不变。
后台查询业务可以设计成定时任务,请参考Timer或者quertz设计实现。保持没28秒刷新一次就可以满足前台对数据有效性的要求。
这样设计可以解决并发访问数据的情况,因为访问数据库的查询业务只有一个定时任务来实现。
希望对你有帮助
旧的方案,每隔30秒的自动刷新保持不变。
后台查询业务可以设计成定时任务,请参考Timer或者quertz设计实现。保持没28秒刷新一次就可以满足前台对数据有效性的要求。
这样设计可以解决并发访问数据的情况,因为访问数据库的查询业务只有一个定时任务来实现。
希望对你有帮助
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样经常刷新肯定对数据库有影响的,你这样是可行的,也可以放在缓存里面~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询