banner
Tenifs

Tenifs

雄关漫道真如铁,而今迈步从头越。
github
follow
zhihu
email

MySQL インデックスの無効化を引き起こす一般的なシナリオ

explainは SQL 文を分析するために使用されます。具体的な使用方法は以下の通りです:

image

実行する SQL 文の前にexplainを追加するだけでよいです。

各フィールドの意味は以下の通りです:

  • id:選択識別子で、id が大きいほど優先度が高く、先に実行されます。
  • select_type:クエリのタイプを示します。
  • table:出力結果セットのテーブルです。
  • partitions:マッチするパーティションです。
  • type:テーブルの結合タイプを示します。
  • possible_keys:クエリ実行時に使用可能なインデックスを示します。
  • key:実際に使用されるインデックスを示します。
  • key_len:インデックスフィールドの長さです。
  • ref:列とインデックスの比較です。
  • rows:おおよその行数の推定です。
  • filtered:テーブル条件でフィルタリングされた行の割合です。
  • Extra:実行の状況と説明です。

最も重要なのは、type フィールドで、以下の値があります:

  • all:テーブル全体のデータをスキャンします。
  • index:インデックスをトラバースします。
  • range:インデックスの範囲検索です。
  • index_subquery:サブクエリで ref を使用します。
  • unique_subquery:サブクエリで eq_ref を使用します。
  • ref_or_null:null に対するインデックスの最適化の ref です。
  • fulltext:全文検索を使用します。
  • ref:ユニークでないインデックスを使用してデータを検索します。
  • eq_ref:結合クエリで主キーまたはユニークインデックスを使用します。
  • const:主キーを where の後に条件クエリとして配置すると、MySQL オプティマイザはこのクエリを定数に最適化できます。

結論#

異なるMySQLバージョンでは、インデックスの無効化戦略も異なる場合があります。

ほとんどのインデックスの無効化は明確ですが、一部のインデックスの無効化はMySQLのバージョンによって異なる場合があります。

したがって、具体的な問題に対して具体的な分析を行うために、実践中に研究を行う必要があります。正確な判断ができない場合は、explainを使用して検証することができます。

参考資料#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。