Ho implementato una versione SQL dell'algoritmo di ranking di Reddit per un aggregatore di video in questo modo:
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 viene aggiornato da un trigger ogni volta che viene espresso un nuovo voto. Funziona abbastanza velocemente sul nostro sito attuale, ma ho intenzione di aggiungere una colonna del valore di ranking e aggiornarla con lo stesso trigger di cached_votes_total colonna. Dopo tale ottimizzazione, dovrebbe essere abbastanza veloce per la maggior parte dei siti di qualsiasi dimensione.
modifica:ulteriori informazioni su Algoritmo di Reddit Hotness in SQL