Mysql
 sql >> база данни >  >> RDS >> Mysql

Как се използват алгоритмите за класиране на Reddit и Hacker News?

Внедрих SQL версия на алгоритъма за класиране на Reddit за видео агрегатор по следния начин:

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 се актуализира от тригер всеки път, когато се подаде нов вот. Работи достатъчно бързо на нашия текущ сайт, но планирам да добавя колона със стойност за класиране и да я актуализирам със същия тригер като cached_votes_total колона. След тази оптимизация той трябва да е достатъчно бърз за повечето сайтове с всякакъв размер.

редактиране:Повече информация на Алгоритъм на Reddit Hotness в SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL SELECT WHERE дата и час съвпада с ден (и не непременно час)

  2. Най-добра практика за съхранение на потребителски имена и пароли в MySQL бази данни

  3. ProgrammingError:SQLite обекти, създадени в нишка, могат да се използват само в същата нишка

  4. #1139 - Получих грешка „операнд за повторение невалиден“ от регулярния израз

  5. mysql твърде много индекси?