Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie werden die Ranking-Algorithmen von Reddit und Hacker News verwendet?

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