この記事は、mysql に関する関連知識を提供します。プログラマは mysql を頻繁に扱う必要があります。プログラマーは毎日 mysql にさらされていると言えますが、mysql テーブルにはどれくらいのデータを保存できるでしょうか?計算の根拠は何ですか?一緒に話し合ってみましょう。皆さんのお役に立てれば幸いです。
オペレーティング システムでは、対話するために次のことがわかっています。ディスクの場合、メモリもページングされ、ページ サイズは 4KB です。同様に、MySQLでもスループットを向上させるためにデータもページングされますが、MySQLのデータページサイズは16KBです。 (正確に言うと、InnoDB データ ページのサイズは 16KB です)。詳しい検討内容は公式サイトを参照してください 以下のコマンドで問い合わせることができます。
mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | Innodb_page_size | 16384 | +------------------+-------+ 1 row in set (0.00 sec)
今日はデータ ページの具体的な構造ポインタについては説明しませんが、デフォルトで 16kb になっている、つまりノードのデータ サイズが 16kb
私たちは皆、次の B ツリー構造である mysql のインデックス構造を知っておく必要があります。
通常、B ツリーは非リーフ ノードにはデータが格納されず、リーフ ノードのみが格納されます (データは最下層にのみ格納されます)。ノードに戻りましょう。ノードとは、(上の図の場合)
## を指します。 ##各赤いボックスで選択されている部分は、要素ではなくノードです。ノードの概念と各ノードのサイズが 16kb であることを理解すると、mysql が保存できるデータ量の計算がはるかに簡単になります
2. 具体的な計算方法
2.2. 他の層のノードの計算
各ノードのデータ構造はノードのデータ構造と同じであり、ノードの各要素はノードに拡張されるため、第 2 層のデータ量は 1170*1170=1368900 になります。innodb のリーフ ノードには mysql データ全体が直接含まれているため、問題は第 3 層にあります。フィールドが多い場合、スペースはここでは 1kb を基準に計算しているので、第 3 層では各ノードが 16kb となり、各ノードに 16 個のデータを保存できるため、最終的に mysql が保存できるデータの合計は
# になります。 ##1170 * 1170 * 16 = 21902400 (数千万項目)実際、計算結果は私たちの通常の作業経験と一致しています。一般に、MySQL テーブル内のデータが数千万を超える場合、テーブルに分割する必要があります。 3. まとめ最後に、今日話し合った内容を写真を使ってまとめます。気に入っていただければ幸いです 推奨される学習:mysql ビデオ チュートリアル
以上がMySQL テーブルにはどれくらいのデータを保存できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。