sql >> Database >  >> RDS >> Mysql

Hoe worden de rangschikkingsalgoritmen van Reddit en Hacker News gebruikt?

Ik heb een SQL-versie van het rangschikkingsalgoritme van Reddit geïmplementeerd voor een video-aggregator, zoals:

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 wordt bijgewerkt door een trigger wanneer een nieuwe stem wordt uitgebracht. Het werkt snel genoeg op onze huidige site, maar ik ben van plan een kolom met rangordewaarde toe te voegen en deze bij te werken met dezelfde trigger als de cached_votes_total kolom. Na die optimalisatie zou het snel genoeg moeten zijn voor de meeste sites van elke grootte.

edit:Meer informatie op Reddit Hotness Algorithm in SQL



  1. Problemen met het weergeven van Japanse karakters met PHP en MySQL

  2. hoe %ROWTYPE declareren van een variabele die een zwak getypte SYS_REFCURSOR is?

  3. Rails:een afbeelding uit een blob-veld in een database weergeven

  4. Panda's schrijven dataframe naar ander postgresql-schema