sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruges Reddit og Hacker News rangordningsalgoritmer?

Jeg implementerede en SQL-version af Reddits rangeringsalgoritme for en videoaggregator som sådan:

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 opdateres af en trigger, hver gang der afgives en ny stemme. Det kører hurtigt nok på vores nuværende websted, men jeg planlægger at tilføje en rangeringsværdikolonne og opdatere den med samme trigger som cached_votes_total kolonne. Efter denne optimering burde den være hurtig nok til stort set enhver størrelse websted.

edit:Flere oplysninger på Reddit Hotness Algorithm in SQL



  1. mysql GROUP_CONCAT dubletter

  2. MySQL BESTIL EFTER IN()

  3. Skal jeg oprette en klasse, der arver SQLiteOpenHelper for hver tabel i min database?

  4. Trin for trin instruktioner til Oracle Virtual Box-installation