MYSQLの研究では、8(インデックス)ノート

まず、コンセプト指数
1.1概念
MySQLでは、インデックスのキーワードインデックスは、また、「キー(鍵)として知られ、すぐにレコードを検索するためのデータ構造のためのストレージエンジンです。
場合は、テーブル内のデータの量より多く、良好なパフォーマンスのための指標は、多くの場合、SQLクエリを書き直す必要がある重要な指標の最適化が本当に最適なインデックスを作成するには、クエリのパフォーマンスを最適化するための最も有効な手段であるべきである。
注意:インデックスは一般的に、多くの場合、クエリフィールドに作成されます。

1.2インデックスの動作
方法MySQLのインデックスを理解するために、最も簡単な方法は、書籍のインデックス部分を見ることである:例えば、あなたが本の中で話題を見つけたい、インデックスディレクトリの通常、最初の読み取り、該当するページ番号はすぐにあなたが見たいものを見つけることができた後、対応する章を見つけます。

MySQLストレージエンジンにインデックスに対応する値を見つけることであるインデックスと同様の方法を使用して、その後、インデックスマッチングレコードに基づいて、対応するデータ・ラインを見つけ、最終的にクライアントにデータの結果セットを返します。

1.3インデックス型
主キー索引である4つの基本型のMySQLのインデックス、インデックスのみ、一般的なインデックスとフルテキストインデックス。
主キーインデックス:
主キーは一意のインデックスであるが、それはPRIMARY KEYとして指定する必要があり、各テーブルには1つのプライマリキーを持つことができます。
唯一のインデックス:
インデックス付きの列のすべての値が一度だけ発生する可能性があり、一意である必要があり、値は空にすることができます。
共通のインデックス:
基本的なインデックス型、値が制限の一意性なしに、空にすることができます。
フルテキストインデックス:
インデックスタイプFULLTEXTのフルテキストインデックス。フルテキストインデックスは、varchar型、char型、テキスト型の列上で作成することができます。ALTER TABLEで作成されたか、CREATE INDEXコマンドすることができます。大きなデータセットの場合、ALTER TABLE介して(またはインデックスの作成)高速フルテキストインデックスを持つ空のテーブルにレコードよりフルテキストインデックスを作成するためのコマンド。フルテキストインデックス処理のMyISAMのサポートは、mysql5.6後InnoDBは、フルテキストインデックスをサポートしています。
フルテキストインデックスは、中国がスフィンクス(coreseek)または高速検索、<、コード>中国の加工技術を借りる必要がサポートしていません。

第二に、インデックス作成
#テストテーブルを作成し、以下のように、スクリプト・テーブルを作成することである:
CREATE TABLE DATAL

ID INT、
studentNumber NVARCHAR(30)は、
サブジェクト名NVARCHAR(30)、
INTスコア

。1
2
3
4
5
6
7
8
2.1主キーインデックス作成
作成を主キーのインデックスの構文構造を次のように

TABLE ALTERは、table_namePRIMARY KEY(ADD column
1
EGを次のようにDATA1は、スクリプトステートメントのIDとして主キーのインデックスを作成するには、次のとおりです。

ADD PRIMARY KEYテーブルDATA1 ALTER(ID)
1
2.2は一意のインデックスを作成し、
一意のインデックス文法構造を作成するために、以下の通りであります:

ALTER TABLEがtable_nameUNIQUE(ADD
COLUMN`を

例えば次のようにstudentNumberがあるようDATA1は、一意のインデックスを作成し、スクリプト文は次のとおりです。

表DATA1をALTER UNIQUE(ADD
studentNumberを

2.3定期的なインデックス作成
文法構造の共通のインデックスを作成するために、次のとおりです。

TABLE ALTER table_nameのADD INDEX index_nameは(column
1
EG:次のようにサブジェクト名があるようDATA1は、通常のインデックスを作成し、スクリプト文は次のとおりです。

表DATA1 ALTER(サブジェクト名)INDEX_NAME ADDのINDEX
1
2.4は、フルテキストインデックスを作成するために
、以下のように文法構造のフルテキストインデックスを作成です。

TABLE ALTER table_nameADDのFULLTEXT( column
1
EG:次のようにサブジェクト名があるようDATA1は、フルテキストインデックスを作成し、スクリプト文は次のとおりです。

ADDのFULLTEXTインデックステーブルデータ1 ALTERのfulltext_123(studentNumber、サブジェクト名);
1つの
注上記のスクリプトの実行時間という、時には次のエラーメッセージ:
MYSQLの研究では、8(インデックス)ノート
彼らはフルテキストインデックスをサポートしていないため、このエラーを報告しましたがあり、解決策:

1テーブルを作成するために使用されるエンジンを参照し、InnoDBの場合、代わりのMyISAM、InnoDBのFULLTEXTインデックスはタイプサポートしていない
代わりに、2がInnoDBのであれば、設定ファイルmysql.ini、検索デフォルトストレージエンジン=を表示しますMyISAMテーブル。MySQLサービスを再起動します。

第三に、インデックスビューの
2つの方法でインデックスクエリ次のように、以下のとおりです。

方法の一つ:
tblnameから表示するインデックス;
MYSQLの研究では、8(インデックス)ノート
方法2:
tblnameからショーキーズ;
MYSQLの研究では、8(インデックス)ノート
第四には、インデックスを削除するには、
インデックスを削除するには、ALTER TABLEまたはDROP INDEXステートメントを使用することができます。同様のCREATE INDEX文を、DROP INDEXは、ALTER TABLE文の処理、構文などの内部にあってもよいです。

talbe_nameのインデックスindex_nameのをDROP
TABLE table_nameのはDROP INDEX index_nameはALTER
ALTER TABLEのDROP PRIMARY KEYをTABLE_NAME

おすすめ

転載: blog.51cto.com/14525650/2436589