インデックスのMySQLのSQLチューニング

自分のレビューの後に見ても、簡単にMySQLのインデックスの知識の学習ノートのBenpian記録、

まず、インデックスの概念
MySQLは効率的にデータのデータ構造を得るのを助けるためにインデックス(指数):MySQLの公式は、インデックス定義を与えます。だから、インデックスはすぐにソートされたデータ構造を見つけることです

第二に、インデックスの分類
MySQLのインデックスは、カテゴリに分けることができます。

単一値の指数:インデックス列の単一の値インデックスが含まれている
一意のインデックスを:インデックス列は、一意のインデックスは、例えば、固有の一意または主キーインデックスでなければならない必要があり、まだヌル値でき
複合インデックスは:インデックスは複数の列を含む複合体でありますインデックスは、からなる
3つの索引の使用
索引を作成する
tableNameの上の[ユニーク]インデックスINDEXNAME作成する ;(COLUMNNAME(長さ))
ような、インデックスidx_dept_id DEPT表を作成するように
DEPT(ID)にidx_dept_id作成、
インデックス修正
PSを:変更インデックスは新規のためにも使用することができます指数上昇
構文:

テーブル名は、[ユニーク]インデックス索引名追加変更 ; COLUMNNAME上(長さ)
、インデックス削除
、テーブル名のドロップ索引索引名を
インデックス参照
;テーブル名からショーのインデックスを
使用すると、改行を表示したい場合は、\ Gを追加することができますが、セミコロンを追加することはできません
テーブル名からショーのインデックスを\ G
付録:
新しいインデックスの方法まだのシリコンバレー教師の要約である:
主キーを追加#、主キーはユニークであり、NULLできないと
、ALTER TABLEテーブル名追加PRIMARY KEY(COLUMNNAME);
#一意のインデックスを必要とし、一意のインデックスを作成するのではなく、許可ヌルができるように
、テーブルが追加ユニークインデックスIndexNameをON(COLUMNNAME)TABLENAME変更
#共通のインデックスを作成し、インデックスデータが一意ではないかもしれない
ALTER TABLEのテーブル名インデックスが追加ON(COLUMNNAME)をINDEXNAME;
フルテキストインデックスを指定し、フルテキストインデックスは、
テーブルのテーブル名を変更します(COLUMNNAME)にFULLTEXT索引名を追加します。
第四に、インデックス・アーキテクチャはじめに
MySQLのインデックス構造を分けることができます:

B-Treeインデックス
ハッシュインデックス
のフルテキストインデックステキスト
R-Treeインデックス

なお、図Bツリーインデックス構造から分かる実際B +ツリーで、バイナリツリーは必ずしもないが、複数のツリーが存在してもよい示すように、MySQLのセグメントブロックは、このような構造に分割され、ここで、青色黄色の部分はポインタを表す、ディスクブロック、青色部分を表すデータ項目であります

私は29を検索したい場合は、この値は、あるデータの数百万人が存在する場合には、インデックスのケースを取ることができ、非常に高速で、ダウンポインタの外観に応じて、ディスクブロック1、ディスクブロック3、ディスクブロック8を見つけるために、それぞれ、歩くことです非常に速く、性能比較を想像することができます

注:唯一のリーフノード(ボトムノード)がデータを検索するために格納され、非リーフノードに格納されたデータは、インデックス、それのデータ・エントリ・ポインタのために使用されます

第五に、該当するインデックスケース
1、インデックスのために頻繁にクエリの条件
2は、デフォルトの主キーのインデックスはプライマリ追加する
3、および他のテーブルには、カラムインデックスを作成外部キー関係持って
、条件は上に構築することができます条件の後ろに列を4にインデックス
5、列インデックス添加することによって順序をソートするために使用することができる
列によってグループをグループ化するための6がインデックス付けすることができ、
重要:更新されたデータは、インデックスを再構築するであろうように、列の頻繁な変更の必要性は、インデックス付けには適していません、比較の抵抗性能、高い同時の場合、一般的に、ほとんどのクエリ条件、条件の通常複数存在する、ため、複合インデックスを確立する傾向がある、複合インデックスがより適しています

インデックスが適用されないVI
1は、表中に頻繁付加および欠失必要
ケース2を、テーブルは、いくつか、ほとんど効果指標プラス記録され
たデータ列が多くの重複データが含まれている場合、このようなユーザ情報テーブルの性別として3を、この列一般のみ2つのケースが、インデックスの添加ので、あまり実用的効果ていない
注:インデックスは正規クエリに追加または列をソートしなければならない、非常に平均的な場合のデータの複製および配布が索引付けは適していません

 

プログラマーツールサイト:草の根ツールwww.idevtool.com  

個人的なメモサイト:草の根ノートnote.idevtool.com

おすすめ

転載: www.cnblogs.com/benpao/p/11600535.html