PHP では、uid に基づいてどのデータベースを挿入するかをどのように計算できますか?

WBOY
リリース: 2016-06-23 13:52:59
オリジナル
1064 人が閲覧しました

今関数を実装したいです:
挿入ログを持つさまざまなテーブルに対応する、計算ル​​ールを通じて 200 万人のユーザーの UID を計算する必要があります。どのように計算してテーブル バランシングを実行するか?


ディスカッションへの返信 (解決策)

はい、各テーブルに大量のデータを発生させることなく、バランスの取れた方法でログにアクセスできます。専門家の方、アドバイスをお願いします

これにより、各テーブルに大量のデータが発生することなく、バランスの取れた方法でログにアクセスできるようになります。専門家の方、アドバイスをお願いします

uid は通常、単なる数値です。法を取得します

substr('1456', -1);//6

uid の単位桁に従って、どのテーブルが存在するかを知るために数字を数えるだけです (0-9、10 テーブル)

専門家の方、教えてくださいコードを参考にしてください。ありがとうございます

これにはコードが必要ですか?
$uid を uid の値、$m をログテーブルの数とする
次に、テーブル名 $tbl = 'prefix' ($uid % $m)

の命名規則がわからない複数のテーブルは何ですか? 200 万人のユーザーがいて、ログ テーブルがランダムに割り当てられているのでしょうか、それともこのユーザーの作成時に、どのテーブルに配置するかを指定する必要がありますか?

1. ランダムの場合は、テーブルの名前付けに特定のルールを設けるのが最善です (log001、log002...、log100 など)。 rand() を直接使用して数値を処理し、それをテーブル名に入力します
2. ユーザーが作成時に書き込むテーブルを指定すると、ログイン時にテーブル名を書きやすくなります。セッションで、日を書き込むときに、直接結合します。
3. ユーザーの最初の文字に基づいて決定したい場合は、方法 2 を使用することもできます

table の場合、メンバーが 200 万あり、300 のテーブルが生成されます。最初にテーブルを生成し、その後 uid に基づいて挿入するテーブル名を自動的に計算するコードを持っている人はいますか?コードを教えてください

まずテーブルを定義する必要があります。それから

for($i-0; $i<300; $i++)  mysql_query("carete table log_$i select * from 表 where 1=0“);
ログイン後にコピー
300 個のテーブルが構築されます

#6 で挿入時のテーブル名の計算を既に指定しています

これはデータベースの非常に頻繁な操作です。 。

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