sql >> データベース >  >> RDS >> Mysql

RedditとHackerNewsのランキングアルゴリズムはどのように使用されていますか?

    次のようなビデオアグリゲーター用に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アルゴリズム をご覧ください。



    1. mysqli接続を機能させる方法は?

    2. 別のプロセスが古いデータを取得しないようにSELECTをロックします

    3. 接続文字列からデフォルトのスキーマを設定できますか?

    4. MariaDB ColumnStore1.1.3GAを搭載した新しいMariaDBAXリリース