技術共有

MySqlパフォーマンスチューニング01-【データ構造とインデックス】

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

インデックスとは何ですか

ここに画像の説明を挿入します

インデックスの種類

在Mysql中索引是在存储引擎层实现的,而不是在服务层实现的

  • データ構造による:Bツリーインデックス、ハッシュインデックス、フルテキストインデックス
  • ストレージ構造による: クラスター化インデックス、非クラスター化インデックス
  • フィールドの特性に応じて: 主キー インデックス、一意のインデックス、通常のインデックス、全文インデックス
  • フィールドの数に応じて: シングルトン インデックス、ジョイント インデックス

一般的なインデックス データ構造と相違点

  • 二分木、赤黒木、B 木、B 番号
  • 違い: ツリーの高さはデータ取得のパフォーマンスに影響します (各ツリー ノードはディスク IO です)

二分木

特徴:各ノードには最大 2 つの子ノードがあり、左側に小さい子ノード、右側に大きい子ノードがあります。 。データがランダムである場合、分岐はより明白になります。

以下のテーブルのIDをインデックスとして設定します。
就是将id列按照二叉树的数据结构存储起来
ここに画像の説明を挿入します
データを1つずつ順番に入力する場合
このとき、ツリーの高さは非常に高くなり(連結リスト構造です)、要素の検索効率は連結リストクエリO(n)と同等になり、データの検索効率は非常に低くなります。
ここに画像の説明を挿入します

赤黒い木