6

RedditDigg、さらにはStackoverflowなどのサイトで使用されている人気アルゴリズムを調査してきました。

Reddit アルゴリズム:

t = (time of entry post) - (Dec 8, 2005)
x = upvotes - downvotes

y = {1 if x > 0, 0 if x = 0, -1 if x < 0)
z = {1 if x < 0, otherwise x}

log(z) + (y * t)/45000

私は常に SQL 内で単純な順序付けを実行してきましたが、そのような順序付けをどのように処理すればよいのか疑問に思っています。

テーブルを定義するために使用する必要がありますか、または式内の順序で (パフォーマンスを妨げることなく) SQL を構築できますか?

また、パフォーマンスの問題を発生させることなく、さまざまな機会に複数の順序付けアルゴリズムを使用できるかどうかも疑問に思っています。


Django と PostgreSQL を使用しています。

助けていただければ幸いです。^^

4

1 に答える 1

3

独自の列に人気率をキャッシュし、基になる値が変更されたときに更新する必要があります。また、その列にデータベース インデックスを設定する必要があります。次に、最も一般的なクエリの結果もキャッシュすると、人気のあるクエリのパフォーマンスに対して最も効果的な手段を講じたことになります。

于 2010-03-22T23:56:07.500 に答える