数据库频繁更新的表,而且这个这个表的部分字段频繁读写排序,我这里经常出现死锁,该怎么设计才能避免死锁呢?

这个表是新闻表
[news]
id
viewTimes总浏览量
viewTimesToday今日浏览量
viewTimesWeek本周浏览量
viewTimesMonth本月浏览量
这几个浏览量的字段,页面访问一次就会更新一次
更新非常频繁
而且为了提高检索速度做了排序索引
selecttop100*fromnewsorderbyviewTimesdesc
selecttop100*fromnewsorderbyviewTimesTodaydesc
selecttop100*fromnewsorderbyviewTimesWeekdesc
到底该怎么设计呢?
如果把这些统计的信息单独放到另外一张表,虽然不会有过多的死锁情况,但那样在检索文章的时候就没法排序了
这些情况基本上在网站访问量大的情况下产生
不知道大侠们遇到过这样的问题没
有没有什么好的方法?
潇潇雨雨
浏览 264回答 2
2回答

慕丝7291255

我的做法是把热数据放到了redis中,前几十页的数据都从redis中获取,通过redis来排序,大部分的用户只会访问到redis中的内容,少量用户会访问到redis中不存在的数据,这个时候在查库,数据库的压力非常小,只要要保证redis和数据库中的数据一致性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript