Zaimplementowałem wersję SQL algorytmu rankingu Reddit dla agregatora wideo, takiego jak:
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 jest aktualizowany przez wyzwalacz za każdym razem, gdy oddany zostanie nowy głos. Działa wystarczająco szybko w naszej obecnej witrynie, ale planuję dodać kolumnę wartości rankingu i zaktualizować ją za pomocą tego samego wyzwalacza, co cached_votes_total kolumna. Po tej optymalizacji powinien być wystarczająco szybki dla większości witryn o dowolnej wielkości.
edit:Więcej informacji na stronie Algorytm Hotness Reddit w SQL