プログラマーは MySQL を扱う機会が多く、毎日触れているとも言えますが、MySQL テーブルにはどれくらいの量のデータを保存できるのでしょうか。計算の根拠は何ですか?次に、一つずつ説明していきましょう 知識の準備データページオペレーティング システムでは、ディスクと対話するために、メモリもページ サイズが 4 KB でページ化されることがわかっています。同様に、MySQL でもスループットを向上させるためにデータがページングされますが、MySQL のデータ ページ サイズは 16 KB です。 (正確には、InnoDB データ ページのサイズは 16KB です)。詳しい学習方法は公式サイトを参照してください。以下のコマンドで問い合わせることができます。 mysql> 'innodb_page_size' のようなグローバルステータスを表示します。 +------------------+-------+ | 変数名 | 値 | +------------------+-------+ | Innodb_ページサイズ | 16384 | +------------------+-------+ セット内の 1 行 (0.00 秒) 今日は、データ ページの特定の構造ポインターについては詳しく説明しません。デフォルトで 16kb に設定されており、ノードのデータ サイズが 16kb であるということだけを知っておいてください。 インデックス構造 (innodb)MySQLのインデックス構造は誰もが知っていますが、それは次のB+ツリー構造です。 通常、B+ツリーの非リーフノードにはデータは保存されません。リーフノード(最下層)のみがデータを保存します。それではノードについてお話ししましょう。ノードとは(上の図の場合) 赤いボックスで選択された各部分は、要素ではなくノードと呼ばれます。ノードの概念と各ノードのサイズが 16kb であることを理解した後は、MySQL が保存できるデータの量を計算するのがはるかに簡単になります。 具体的な計算方法ルートノードの計算まず、ルートノードを見てみましょう たとえば、設定するデータ型はbigintで、サイズは8bです。 データ自体に、次のレベルのインデックスデータページのアドレスを格納するために使用される6KBの小さなスペースがあります。 したがって、(8b+6b=14b) のデータ空間を計算できます (bigint を例にとると)。データ ページのサイズは 16kb、つまり (16 1024)b であると言いましたが、ルート ノードには (16 1024/(8+6)) のデータ、つまり約 1170 個のデータを保存できます。ノード計算方式で計算すると、次のステップは簡単になります。 他のレイヤーのノードの計算2層目は実は簡単です。各ノードのデータ構造はルートノードと同じで、ルートノードの各要素はノードに拡張されるため、2層目のデータ量は1170*1170=1368900です。問題は3層目にあります。InnoDBのリーフノードにはMySQLデータ全体が直接含まれているからです。フィールドが多いと、データが占めるスペースは小さくありません。ここでは1kbと計算しているので、3層目では各ノードは16kbで、各ノードは16個のデータを保持できるため、最終的にMySQLが保存できるデータの合計は次のようになります。 1170 * 1170 * 16 = 21902400 (数千万) 実際、計算結果は私たちの通常の仕事の経験と一致しています。一般的に、MySQL テーブル内のデータが 1,000 万を超える場合は、テーブルに分割する必要があります。 要約する最後に、今日話し合ったことを写真を使ってまとめたいと思います。気に入っていただければ幸いです。 MySQL テーブルに保存できるデータ量に関するこの記事はこれで終わりです。MySQL テーブルに保存できるデータ量の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: react+antd.3x は IP 入力ボックスを実装します
>>: Dell R720 サーバーに Windows Server 2008 R2 をインストールする方法
Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...
目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...
目次1. インストールとインポート2. 手ぶれ補正機能を定義する3. チャートコードを描くinit ...
この記事の例では、カウントダウン機能を実装するためのVueの具体的なコードを参考までに共有しています...
目次問題の説明解決問題分析問題の説明MySQL で delete ステートメントを使用してデータを削...
オンラインショッピングモールデータベース - 商品カテゴリデータ操作(I)プロジェクトの説明電子商取...
HTML CSS および JavaScript を使用して、プラス、マイナス、ゼロの 3 つのボタン...
この問題について話すとき、垂直方向の中央揃えを設定するための vertical-align 属性が ...
display: flex レイアウトに関しては、深く理解している人もいますし、私も他の人の作業か...
MERGE ストレージ エンジンは、MyISAM テーブルのグループを論理ユニットとして扱い、同時に...
ブロック引用の定義と使用法<blockquote> タグは引用ブロックを定義します。 &...
目次問題の説明原因分析解決問題の説明最近、奇妙な問い合わせを受けました。更新ステートメントはエラーな...
目次背景例誤解 - コールスタックを表示するためにウォッチでブレークポイントを設定する正しいアプロー...
上に示すように、ナビゲーションは上部に固定されており、左右にスライドしてさらにオプションをクリックで...
目次文字列オブジェクトのメソッド方法 1: indexOf() (推奨)方法 2: search()...