MySQLのインデックス・タイプノーマル、ユニーク、全文

質問1:あるものの通常の、ユニーク、全文のタイプ間のmysqlの屈折率差?

通常:一般的なインデックスを指定します。

ユニーク:フィールドにその情報を確保する場合の指標として、例えばID番号のために、繰り返されない、重複インデックスを許可しない、ユニークであり、それが一意に設定することができます

フルtextlは:フルテキスト検索のインデックスを示しています。FULLTEXTは、長い時間のための記事、最良の結果を検索します。それは普通のINDEXの行または2が可能であるならば、比較的短いテキストで使用されます。

要約、インデックスカテゴリがフィールドのコンテンツのインデックス作成の特性によって決定される、最も一般的なのは、通常は正常です。

質問2:実際の動作では、そのフィールドにインデックステーブルとして選択すべきか?

インデックスを作成するときに、インデックスをより効率的に利用するためには、あなたは、インデックスとフィールドを上に作成したインデックスの種類を作成することを検討しなければならない、7つの原則があります。

1。一意のインデックスを選択
2。グループとの共同フィールドの操作がインデックス化、ソートする必要がある場合が多い
3。クエリとして、多くの場合、フィールドをインデックス付き
4。インデックスの数に制限
5。インデックスデータを少量使用してみてください
6。インデックスに接頭辞を使用してみてください
7。未使用または少し-使用されるインデックスを削除します

MySQL:フォーマットに格納されているB-treeインデックス 

  メモリストレージエンジンを選択することができ、またはB木ハッシュインデックス、ハッシュインデックスのみを使用することができ、又は式= <=>比較。 

  1、一般的なインデックス:テーブル名(列リスト)にインデックスを作成する 

  テーブル名テーブルインデックスを追加します(列リスト)を変更する 

  テーブル名テーブルを作成します([...]、インデックス[IndexNameプロパティ](列リスト) 

  2、一意のインデックス:作成インデックスユニーク 

  ALTERは...ユニークな追加 

  主キー:ユニークインデックスの一種は、キープライマリとして指定する必要があります 

  3、フルテキストインデックス:フルテキストインデックスおよびフルテキスト検索、FULLTEXT、サポートするために、バージョン3.23.23から始める 

  char型することができ、varchar型またはテキストタイプを列を作成する。 

  4、別のインデックス、複数列インデックス: 

  複数の別々のインデックスを単一のマルチカラムインデックス異なるクエリ結果と、ため: 

  クエリを実行するとき、MySQLはインデックスのみを使用することができ、制限は複数のインデックスから選択する最も。厳格なインデックス 

  5、最も左のプレフィックス(接頭辞左端):マルチカラムインデックス、例えば:fname_lname_ageインデックスは、以下の検索条件は、MySQLが使用する 

  FIRSTNAME、FIRSTNAME、姓、年齢:fname_lname_ageインデックス 、ファーストネーム;、姓をそうしません使用しています。 

第二には、SQLクエリから作成されたインデックスの種類を決定し、クエリを最適化する方法 

  インデックス列を選択します 

  。パフォーマンスの最適化プロセスは、カラムが最も重要なステップの一つであるにインデックスを作成することを選択しました。インデックスの使用を検討して主にある 

  列の2種類:カラムがwhere句に現れ、句が結合列に表示されます。 

  Bより大きい。列の値の分布、列カーディナリティインデックス、より良い指標を考えます。 

  C。短いインデックスを使用して、文字列の列のインデックス場合、インデックスはクエリの速度を向上させ、多くのスペースを節約することができ、プレフィックス長を指定する必要があります。 

  D。最も左のプレフィックス使って 

  eが。オーバーインデックス、唯一の希望インデックスを維持するためにしないでください。各追加インデックスは、余分なディスクスペースを取るし、書き込み操作のパフォーマンスを低下させる必要があります。 

  目次を変更する場合は、インデックスを更新する必要があり、そして時には再構成を必要とするかもしれないので、より多くの指標は、長い時間が費やされます。

  インデックスを使用する前にのみオペレータでのMySQL:<、<=、=、  >、> =、で、間

  (場合、ワイルドカード文字%または_で始まらない)時にはなど。 

MySQLのインデックスの分類 

データベーステーブルでは、インデックスフィールドが大幅にクエリの速度を向上させることができます。これらのインデックスの利点によって、あなたはより効率的なMySQLのクエリと実行を行うことができます。インデックスは、高速検索するための鍵です。効率的な運用のためのMySQLのMySQLのインデックスの構築は非常に重要です。ここではMySQLのインデックスのいくつかの一般的な種類があります。 
1、インデックスの一般的なタイプの 
最も基本的なインデックス・タイプであり、それは独自性などを制限するものではありません。一般的な指標はいくつかの方法で作成することができます: 
(1)は、テーブル名ON INDEXインデックス名を作成すると、インデックスを作成する(1列名、列名2、...); 
(2)そのようなALTER TABLEのテーブル名ADDのインデックス名インデックス(1つのカラム名、カラム名2、...)として、テーブルを変更し、 
(3)このようなテーブルのテーブル名を作成すると、テーブル指定されたインデックスを作成する場合([...]インデックスインデックス名(1つのカラム名、カラム名 
2、...)); 
2、インデックスのみ 
このインデックスと前の「一般的な指標は、」基本的に同じであるが、一つの違いで:索引付けされた列のすべての値のみを表示することができ一度、それは一意である必要があります。一意のインデックスは、いくつかの方法で作成することができる: 
(1)インデックス、例えば(列リスト)ONをTABLENAME UNIQUE INDEXインデックス名を作成する作成するステップと、 
(2)表のテーブル名が一意のインデックスを追加ALTER名前などテーブルを、変更(カラムリスト); 
(テーブルの作成は、このようなテーブルのテーブル名を作成する(、一意のインデックス名[...](カラム列としてインデックス、指定された場合3) 
のリスト); 
3、主キー 
主キーは一意のインデックスであり、それがなければなりません「PRIMARY KEY」として指定。あなたはタイプのAUTO_INCREMENTカラムを使用している場合は、すでに主キークラスの概念に精通しているかもしれません。一般的に指定された主キーテーブルの作成では、例えば、 "([...]表tablenameをCREATE 、PRIMARY KEY( 列リスト));." しかし、我々はまた、例えば、主キーによってテーブルを変更するために添加することができる「PRIMARY KEY(列リスト)を追加表tablenameをALTER ;.」各テーブルには、1つのプライマリキーを持つことができます。(重合に対応する主キーインデックスは、インデックスが最も速く見つけることである) 
4、個別のインデックスと複数列のインデックスを 
インデックスは、別のインデックスすることができ、それはマルチカラムインデックスすることができます。 
(1)別のインデックスは、一般的に使用されるインデックス列フィールド、共通の指標です。 
(2)複数列インデックスは、列フィールドを複数含むインデックスがある 
テーブルの学生は、インデックスSY(名追加変更  、年齢、スコア);
マルチカラムインデックスのインデックスSYは、複数列のインデックスは次のような場合に有効であることが: 
SELECT *名前=「JIA」学生からと年齢> =「12」// 最初の列のインデックスフィールドとに含まれる条件 
2番目のフィールド 
の選択は*学生から名前が=「 JIAは、」// 最初の列が唯一の条件が含まれていますフィールド 
を選択*学生どこから名=「 JIA」と<60 //スコアフィールド条件は、最初の列に含まれており、第三ワード 
セクションが 
要約されている:最初の列のマルチカラムインデックスだけインデックスが有効なとき、フィールドの条件が含まれていますが 
5、インデックス列を選択する 
指標として、クエリの列のインデックス列、クエリ条件を初めて目、一般的な条件を選択する方法でなければなりません

おすすめ

転載: blog.csdn.net/qq_35972907/article/details/95171235