Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como os algoritmos de classificação do Reddit e do Hacker News são usados?


Eu implementei uma versão SQL do algoritmo de classificação do Reddit para um agregador de vídeo assim:
SELECT id, title
FROM videos
ORDER BY 
    LOG10(ABS(cached_votes_total) + 1) * SIGN(cached_votes_total)   
    + (UNIX_TIMESTAMP(created_at) / 300000) DESC
LIMIT 50

cached_votes_total é atualizado por um gatilho sempre que um novo voto é lançado. Ele roda rápido o suficiente em nosso site atual, mas estou planejando adicionar uma coluna de valor de classificação e atualizá-la com o mesmo gatilho que o cached_votes_total coluna. Após essa otimização, deve ser rápido o suficiente para a maioria dos sites de qualquer tamanho.

edit:Mais informações em Reddit Hotness Algorithm in SQL