次のようなビデオアグリゲーター用にRedditのランキングアルゴリズムのSQLバージョンを実装しました:
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と同じトリガーで更新することを計画しています。 桁。その最適化の後、ほとんどすべてのサイズのサイトで十分に高速になるはずです。
編集:詳細については、SQLのRedditHotnessアルゴリズム をご覧ください。