2011-02-08 16 views
0

データベースに新規登録しました。FacebookやGoogleのような大規模なWebサイトが、大規模なユーザーベースのログインを処理する方法を理解したいと思います。私はFacebookとGoogleが何億ものユーザーアカウントを持っていると思うし、何千人ものユーザーがおそらくほぼ同時にログインしていると思う。誰かがログインすると、システムはパスワードを比較するために一致するものを見つけるためにユーザー名テーブル全体をスキャンしますか?それが事実なら、それは多くの時間がかかりますか?彼らは何秒後にそれをやりますか?または、アルファベット順にインデックスを作成するので、テーブル全体をスキャンすることはありません。新しいユーザーが新しいアカウントを作成して、テーブルが1日1時間何度も何度も変更された場合、どのようにインデックスを作成しますか?大規模なWebサイトのログインテーブルのヘルプ

Dibo

+0

なぜですか?ちょうど楽しみのために?彼の質問のどの部分がそれによって答えられるのですか? –

答えて

1

ほとんどの大企業は、アイデンティティ管理のために設計されたシステムを使用します。 Active Directoryは1つで、サイトの管理者は別のものです。ここで開いたIDはstackoverflowに別のものです。

あなたの実際の質問は、テーブルとインデックスの仕組みです。

これはあまりにも大きな問題です。しかし、簡単に言えば、データベースは3〜5ブロックを読み取ることによって10億行のテーブル内のユニークなエントリを見つけることができます...それぞれ10msで30〜50ミリ秒です。

データベースは、テーブルの変更ごとにインデックスメンテナンスを行います。それは同時に発生します。あなたはそれを管理する必要はありません。

+0

質問を簡単にするようにしてください。私は1億のエントリを持つ1つのテーブルがプライマリキーがユーザー/ログインアカウント(Googleのような)とユーザー "johnsmith"がログインすると、どのようにしてテーブル全体を検索しないようにするか私は長い時間がかかると信じています。また、ユーザー名は継続的に更新されます。 – Dibo

+0

これは本当ですか?あなたはそれを試してみましたか?もしジョーンスミスがPKであれば、あなたはどれくらいの時間がかかるのか驚くでしょう。 –

関連する問題