我有一張微博表,表里記錄了點(diǎn)贊、轉(zhuǎn)發(fā)、評(píng)論的數(shù)值,現(xiàn)在想優(yōu)化熱門的排序算法。Q:熱門數(shù)值的保存:以前我是在微博表中有一個(gè)字段_hot表示熱度,每隔60分鐘UPDATE這個(gè)字段,這樣排序的時(shí)候就直接按照_hot字段排序就可以獲得。這樣能在一定程度上實(shí)現(xiàn)時(shí)間衰減。更新的算法也可以和大家分享:UPDATEmicroblogasvSET_hot=LOG10((_zan*2+_com*5+_tran*3))+(unix_timestamp(v._createtime)-unix_timestamp(\'2008-12-0100:00:00\'))/100000;問題也很明顯:每隔60s就對(duì)于一張4W+記錄的表的每條記錄做復(fù)雜的計(jì)算,對(duì)CPU的消耗太大。A:我自己想實(shí)現(xiàn)的解決辦法是將數(shù)據(jù)SELECT出來,將計(jì)算放在代碼里面,然后再UPDATE回去。不知道有沒有更好的方式?如果用我的方式怎么實(shí)現(xiàn)呢?
微博熱門的排序算法
素胚勾勒不出你
2019-04-16 20:26:20