近くを通ったらお見逃しなく!経験のある方にシェアしていただければ幸いです。

WBOY
リリース: 2016-06-13 12:12:11
オリジナル
875 人が閲覧しました

近くを通ったらお見逃しなく!経験のある方にシェアしていただければ幸いです。
ユーザー登録と問い合わせについての質問です。システムに 1,000 万人のユーザーがいる場合、1 つのテーブルにそれほど多くのユーザーを保存する必要はありません。
さらにユーザー テーブルを作成します。各ユーザー テーブルには 10,000 人のユーザーを保存できます。これには 1,000 個のテーブルが必要です。
ユーザーがログインしたとき、1万件のデータから検索する場合と、1,000万件のデータから検索する場合では、必然的に速度が異なります。
しかし、このユーザーが 1,000 個のユーザー テーブルの中のどのテーブルに属しているかをどうやって知ることができるのでしょうか?
どのテーブルにクエリ ステートメントが含まれているかをすぐに知ることができれば、パスワードが正しいかどうか、ログインが成功したかどうかを判断できます。
登録する際、6 ~ 18 文字の文字、数字、アンダースコアの組み合わせがデータベースに存在しない限り、ユーザーは正常に登録できます。
しかし、ajax を使用して、1,000 のユーザー テーブルからユーザーの存在を確認することもテストです。ここはどうやってデザインすればいいのでしょうか?
これは QQ 番号の申請とは異なります。QQ 番号は Tencent によって与えられるため、番号セグメントがどのテーブルにあるかを確実に知ることができます。
皆さんの経験を共有していただければ幸いです。どうもありがとうございます! 青字で書かれた質問が 2 つあります。ご意見をいただければ幸いです。
-----ソリューションアイデア----------------------
37種類の英数字+下線。文字 (大文字と小文字を区別する場合) は 63 種類あります (ただし、データベース文字列の比較では大文字と小文字が区別されず、区別するにはバイナリ モードとして指定する必要があります)
最初の 2 桁をキーとして、37 * を使用します。 37 = 1369、すでに 1000 個の時計のアイデアを満たすことができます

//设用户名为<br />$username = 'abcd';<br />//构造表名<br />$tbl_name = 'U' . substr($username, 0, 2);<br />//则查询串为<br />$srl = "select * from $tbl_name where username='$username'";<br />
ログイン後にコピー


-----ソリューションのアイデア---------- ----- ------
各テーブル内のユーザーの並べ替えを記録する別のインデックス テーブルを作成する必要があります。取得するときは、最初にこのテーブルを取得し、ユーザーがいる範囲を見つけてから、そのテーブルを取得するだけです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート