1

多くのユーザーがいるこのウェブサイトのニュース評価スクリプトを作成しています。私はこのウェブサイトをできるだけ効率的にしようとしていますが、投票を追跡するための最も効率的な方法は何でしょうか。もちろん、ユーザーに2回以上投票してほしくない。

私の最初はMySQLデータベースに保存することでしたが、このテーブルがかなり大きくなるため、これが私のWebサイトの速度に悪影響を与えるのではないかと心配しています。

それをデータベースに保存することが依然として最良の解決策であるか、それともより良い解決策がありますか。

4

5 に答える 5

1

1,000,000を超えるレコードを計画している場合は、テーブルの構造が効率的であり(この例では難しいことではありません)、正しくインデックスを作成する必要があります。

Memcachedは、キャッシュを実装する最も簡単な方法であり、サイトが大きくなり、より多くのサーバーが必要になった場合に簡単に拡張できます。

于 2009-12-22T17:01:00.030 に答える
1

適切にインデックス付けされた投票テーブルを使用すると、テーブルのサイズに関係なく、妥当なパフォーマンスを維持できます(もちろん、特定のポイントを超えると、テーブルが大きすぎてキャッシュに収まりませんが、非常に多くのユーザーが必要になりますおよびアイテム)。

ユーザーごとのキャッシュを追加すると(クライアントでは、$ _ SESSIONで、memcachedを使用して)、非常に高速な「no」応答時間を得ることができます。

于 2009-12-22T17:01:07.953 に答える
0

Memcachedは、これを行うための非常に良い方法です。たまにmemcachedから同期する必要があります(mysqlサーバーでcronスクリプトを使用してプルモデルを使用して同期します)。

于 2009-12-22T16:58:54.423 に答える
0

memcachedは使用できないので、これを言います。適切なデータベースサーバー(適切なハードウェア+適切なデータベース実装)は、これを非常にうまく処理できるはずです。article-idの物理インデックスと投票を表す2番目のエントリを持つ単一のテーブルは、数グーギリオン(はい、私は単語を作りました)の記事を簡単に処理します:P

理論的根拠:

データベースサーバーは統計を維持します-読み取り:セルフチューニング-そしてホットアイテム(インデックス+行エントリ)のみがメモリに残ります。

道徳の:

問題が発生しない限り、そのようなことについて心配する必要はありません。つまり、あなたの会社がFacebookの規模である場合、私は心配します。

于 2009-12-22T17:05:36.173 に答える
0

あなたはこれを見ましたか?

http://destiney.com/php#Destiney_rated_images

ここでのデモ:http://ratedsite.com/

于 2009-12-22T17:08:58.520 に答える