1

Facebook(9億人以上のユーザー)、Twitter(3億人以上のユーザー)などのサイトがデータベースからユーザーのログイン名とパスワードを選択して、ユーザーが入力したログイン資格情報を確認する方法を知りたいです。正しい。たとえば、SQLでは次を使用します。

SELECT * FROM Persons
WHERE username=[username from user] 
  and password = [password from user]

しかし、Facebookのような大規模なシステムでは、9億人のユーザーすべてを選択し、ユーザーがログインしているときに1人のユーザーのログイン資格情報を確認しますか?そうでない場合、彼らは何をしますか?

PS:

私はこの分野で新しいので尋ねています。私はSQLを知っていますが、何百万人ものユーザーがいるシステムがユーザーのログイン資格情報をチェックする方法や、ユーザーがサイトから特定の情報を検索しているその他の関連する状況を知りたいです。

4

1 に答える 1

4

はい、これがテーブルのクエリ方法です。これがSQLの目的であり、大量のデータセットを効率的にクエリします。

適切にインデックス付けされた列は、非常に効率的に順序付け/フィルタリングできます。データベースは9億レコードの線形検索を実行しておらず、ある種の最適化されたバイナリ検索を使用します。完全にバランスの取れた二分木を仮定すると、900,000,000を検索するための最悪のケースでは、 30回の比較のみが必要になります。これは900,000,000のlog2です。

于 2012-09-25T14:42:06.227 に答える