Ich habe eine SQL-Version des Ranking-Algorithmus von Reddit für einen Video-Aggregator wie folgt implementiert:
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 wird durch einen Trigger aktualisiert, wenn eine neue Stimme abgegeben wird. Es läuft auf unserer aktuellen Website schnell genug, aber ich plane, eine Ranking-Wert-Spalte hinzuzufügen und sie mit demselben Trigger wie cached_votes_total zu aktualisieren Säule. Nach dieser Optimierung sollte es für die meisten Websites jeder Größe schnell genug sein.
Bearbeiten:Weitere Informationen unter Reddit-Hotness-Algorithmus in SQL