一般的に、データベースのデータが 100 万レコードを超えた場合、テーブルの分割またはパーティショニングを検討する必要があります。今回はテーブルの分割についていくつかの方法について詳しく説明します。まずテーブルを何個に分割するかを考える必要がありますが、もちろんアプリケーションが満たされることが前提です。ここでは、自動インクリメントされる ID の仮数に従ってテーブルを分割するという、比較的単純なテーブル分割方法を使用しました。つまり、値を 0 ~ 9 に分割する 10 個のテーブルがあります。これはモジュロ 10 を計算します。さらに、それらのいくつかを選択して、特定のフィールドの md5 値に従ってテーブルを分割することもできます。この場合、分割できるテーブルは多数になります。
それでは、まずテーブルを作成しましょう。コードは次のとおりです。 リーリー
10 個のテーブルが作成されました。ここでの ID は自動インクリメントに設定できないことに注意してください。構造、タイプ、長さ、フィールドの順序など、すべてのテーブル構造が一貫している必要があります。 IDを取得しますか?これについては後ほど詳しく説明します。ここで、クエリ用のマージ テーブルが必要です。マージ テーブルを作成するコードは次のとおりです。 リーリーマージされたテーブルも前のテーブルと同じ構造、タイプ、長さ、およびフィールド順序を持つ必要があることに注意してください。ここで INSERT_METHOD=0 は、このテーブルでは挿入操作が許可されていないことを意味します。クエリが必要な場合、このテーブルでは選択操作のみを実行できます。まず、唯一の ID を取得する必要があります。 ID を具体的に作成するためのテーブルが必要な場合、コードは次のとおりです:
リーリーつまり、データを挿入する必要がある場合、このテーブルによってID値を生成する必要があります。私のPHPコードのメソッドは次のとおりです。 リーリー
それでは、データを挿入したいと仮定して、どうすればよいでしょうか?引き続きコードを見てみましょうリーリー
実際は非常に簡単ですよね。まず ID を取得し、その ID に基づいてどのテーブルに挿入するかを取得するだけです。更新操作については、これ以上説明する必要はないと思います。ID を取得し、テーブル名を取得して、更新操作を実行するだけです。
ユーザー テーブルの場合は、ユーザー ID、ユーザー名、パスワードなど、少なくとも最も基本的な情報を含むユーザー名を作成します。その他のユーザ情報は、ユーザIDテーブルに分割されたテーブルに分散されます。
テーブルをどのように分割するかは、ビジネス ニーズによって異なります。
ID、年、月、地域ごとに並べ替えることができます。ビジネスニーズに応じて。