1. インデックスの種類1. B+ツリーなぜ B ツリーではなく B+ ツリーなのでしょうか? まず、B ツリーと B+ ツリーの構造上の違いを見てみましょう。 Bツリー構造: B+ツリー: 以下が見られます:
2. MyISAM と InnoDB の B+ ツリー インデックス実装 (クラスター化インデックスと非クラスター化インデックス) の違いは何ですか?まず、クラスター化インデックスと非クラスター化インデックスを理解する必要があります。 クラスター化インデックス: クラスター化インデックスでは、リーフ ページに行のすべてのデータが含まれ、ノード ページにはインデックス列が含まれます。 InnoDB は主キーによってデータをクラスター化します。主キーが定義されていない場合は、代わりに一意の空でないインデックス列が選択されます。そのようなインデックスがない場合、InnoDB は暗黙的に主キーをクラスター化インデックスとして定義します。 クラスター化インデックスのデータ分布: クラスター化インデックスには、主キー インデックスに加えて、セカンダリ インデックスもあります。セカンダリ インデックスのリーフ ノードには、「行ポインタ」ではなく、行への「ポインタ」として使用される主キー値が格納されます。つまり、セカンダリ インデックスを通じて行を検索する場合、ストレージ エンジンはセカンダリ インデックスのリーフ ノードを見つけて対応するプライマリ キー値を取得し、この値に基づいてクラスター化インデックス内の対応する行を検索する必要があります。これは、「テーブルに戻る」とも呼ばれます。もちろん、カバーリング インデックスや
3. 非クラスター化インデックス非クラスター化インデックスの主キー インデックスとセカンダリ インデックスは構造に違いはなく、どちらもリーフ ノード上のデータの物理アドレスを指す「行ポインター」を格納します。 クラスター化インデックスの主キー インデックスとセカンダリ インデックス: 非クラスター化インデックスの主キー インデックスとセカンダリ インデックス: 4. クラスター化インデックスの利点と欠点アドバンテージ: 関連データをまとめて保存します(たとえば、すべてのユーザーのメールをユーザーIDごとにグループ化します)。そうしないと、各データの読み取りでディスクIOが発生する可能性があります。 欠点: すべてのデータをメモリに格納できる場合、シーケンシャル アクセスは不要になり、クラスター化インデックスの利点はなくなります。挿入速度は挿入順序によって異なります。ランダム挿入はページ分割やページ ホールの原因になります。OPTIMIZE TABLE を使用してテーブルを再構築します。挿入、更新、削除のたびにインデックス変更のメンテナンスが必要になり、コストが非常に高くなります。参照行の主キー列がノードに含まれるため、セカンダリ インデックスが予想よりも大きくなる場合があります。 5. ハッシュインデックスハッシュ インデックスはハッシュ テーブルに基づいて実装されます。インデックスのすべての列と完全に一致するクエリのみが有効であるため、ハッシュ インデックスは等価値クエリに適しています。
MySQL では、
6. 適応ハッシュインデックス
MySQL インデックスの基礎となるデータ構造の詳細に関するこの記事はこれで終わりです。MySQL インデックスの基礎となるデータ構造の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HttpsページでBaiduシェアを使用するためのソリューション
現在、MySQL の最適化について学習しています。この記事では、データ型とスキーマの最適化について紹...
目次背景解決新しい質問高度な背景シャトル ボックスが大量のデータを処理すると、レンダリングされる D...
目次1: galera-clusterの紹介2. galera-clusterの仕組み3: Mari...
概要async/await と Promise の基本的な違いは、await fn() は現在の関数...
序文古いプロジェクトを引き継ぐ苦労 - MongoDB クラスターの学習と構築に関する前回の記事を読...
セルでは、暗い境界線の色を個別に定義できます。基本的な構文<TD ボーダーコロダーク=colo...
Gitlab と Github の違いについては、あまり説明する必要はありません。一言でまとめると、...
個人アカウントのパスワードを変更する一般ユーザーが個人アカウントのパスワードを変更する場合は、他のコ...
目次ReactRouterV6 の変更1. <Switch> が <Routes&...
1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...
目次同じ名前の名前空間をマージする名前空間とその他の種類のマージ同じ名前の名前空間とクラスをマージす...
目次関数定義方法関数呼び出し(6種類)これは問題を指摘している厳密モード高階関数閉鎖再帰: 自分自身...
必要:近い将来、大容量ファイルのアップロード機能を実装します。フロントエンドフレームワークのアップロ...
目次1. はじめに2. 使用方法ステートレスコンポーネントステートフルコンポーネント制御コンポーネン...
目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...