sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo se utilizan los algoritmos de clasificación de Reddit y Hacker News?

Implementé una versión SQL del algoritmo de clasificación de Reddit para un agregador de videos así:

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 se actualiza mediante un disparador cada vez que se emite un nuevo voto. Se ejecuta lo suficientemente rápido en nuestro sitio actual, pero planeo agregar una columna de valor de clasificación y actualizarla con el mismo activador que el cached_votes_total columna. Después de esa optimización, debería ser lo suficientemente rápido para la mayoría de los sitios de cualquier tamaño.

editar:Más información en Algoritmo de Reddit Hotness en SQL