今関数を実装したいです:
挿入ログを持つさまざまなテーブルに対応する、計算ルールを通じて 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“);
これはデータベースの非常に頻繁な操作です。 。