[MySQLの2019年7月29日] MySQLのインデックス作成と最適化

I.はじめにインデックス

インデックスの1概念

データベースの検索インデックスが作成されたいくつかのフィールドでテーブルの効率化と価値向上させることにあるディレクトリを

2.インデックスの役割

  • 大幅にクエリの速度データ(メインインデックスの作成)を加速します
  • Ioは、データベースのコストと発注コストを削減します
  • 制約するために、データベース内のデータを(一意のインデックスは、データの一意性を保証するため)
  • テーブルとテーブルの間の接続を高速化

3.価格支払わ指数を確立

  • データベースのストレージ容量を増やします
  • あなたが挿入し、変更する場合には時間がかかります

4.分類インデックス

  • 一般的な指標
  • 唯一のインデックス:フィールドの値が一意である必要があります
  • 主キーのインデックス:自動的に主キーが作成された特別な一意のインデックスを作成します
  • フルテキストインデックス:タイプFULLTEXT、char型、varchar型、テキストなどのシリーズでのみ作成

5.インデックス作成の原則

  • プライマリ、外部キーがインデックス化されなければなりません
  • レコードの300の以上のデータテーブルは、インデックスを作成する必要があります
  • 多くの場合、インデックスを作成する必要がありますWHERE句フィールドに表示されます
  • テキストフィールドのインデックス、長いフィールドを回避しようと、小さなフィールドにインデックスを構築しよう
  • 貧しいフィールド上の唯一のインデックスは、(など、性別、年齢、など)ではありません
  • インデックスは、頻繁にフィールドに更新されていません

CRUDの第二に、インデックス

1.インデックスを作成します。

  ;インデックス `indexname` on`のtablename`(` columnname`)|作成[全文ユニーク]:コモン(シングル、フルテキスト)のインデックスを作成します。

       主キーのインデックスを作成します。テーブルを変更 `プライマリキー(` columnname`)を追加tablename`。

2.インデックスの削除

  一般的な(ユニーク)インデックスを削除します。  

  ALTER TABLEの`table_nameの` DROPのINDEX index_nameは、

  ON DROP INDEX index_nameはtalbe_name` `;

  プライマリインデックスをドロップします。

  ALTER TABLEの`table_nameは` DROP PRIMARY KEYを。

3.変更インデックス

  私は、一般的には、削除、追加、特定のステートメントを使用していません。

4.チェックインデックス

  tablename` `からインデックスを示し;

  Gが縦に表示することができます `tablename`の\ Gの#1プラス\インデックス情報、コマンドラインからショーキー

第三に、インデックスの最適化

1.コンピューティングに関わる機能やインデックスフィールドを使用しないでください。

(名)= 'zhangsan' を逆TB1から選択*;

名前は=( 'zhangsan')逆TB1から選択*;

TB1から*を選択する場所NUM + 3> 100;

TB1から選択*ここでnumは> 100 -3;#例は非常に適切ではありません

2.特に「%インデックス」のような、のようなインデックスフィールドを使用しないでください

どこ名「%の白」のようなTB1から選択*;

「李%」のようなTB1名から選択*;

3.インデックスフィールドタイプは、入力フィールドと一致することが

TB1から*を選択する場所名= 123;

TB1から選択*ここで、NAME = '123';引用符で#NAME型VARCHAR、入力値

4.左端の共同屈折率整合の原則に従ってください

インデックスON S1は、(電子メールで、名前)を作成しますix_name_email
----左端の先頭の試合:左から右への順序と一致する必要があります

選択*からS1どこのメール=「空自」; #は不可以
名= 'zhangsan S1' SELECT * FROM。#可以
どこ名= 'zhangsan'とメール= '空自S1' SELECT * FROM。#可以

 

おすすめ

転載: www.cnblogs.com/shijt/p/11267451.html