ホームページ > データベース > mysql チュートリアル > MySQL インデックスの使用

MySQL インデックスの使用

黄舟
リリース: 2017-02-06 10:23:09
オリジナル
1360 人が閲覧しました

1.1 インデックスの作成
1.1.1 主キーインデックスの作成
テーブル作成時に主キーインデックスを作成します

create table aaa(id int primary key,name varchar(64) not null default ”);
ログイン後にコピー

先にテーブルを作成してから主キーインデックスを作成します

create table aaa(id int,name varchar(64) not null default ”);
  alter table aaa add primary key(id);
ログイン後にコピー

主キーインデックスの特徴
1 ) テーブルは主キーを最大 1 つだけ持つことができます
2) 主キーは複数の列 (複合主キー) を指すことができます
3) 主キーインデックスの効率が最も高いため、一般に ID に auto を与える必要があります-incrementing id
4) 主キーインデックスの列は重複または null にすることはできません
1.1.2 一意のインデックスを作成する テーブルを作成するときに、特定の列を一意のインデックスとして指定します

mysql> create table aaa(id int,name varchar(64) not null default ”,email varchar(64) not null default ” unique);
ログイン後にコピー

一意のインデックスを作成します。テーブル作成後のインデックス

1)mysql> create unique index uni_name on aaa (name);
  2)mysql> alter table aaa add unique (email);
ログイン後にコピー

ユニークなインデックスの特徴
1) 1) テーブル内に複数のユニークなインデックスが存在可能
2) ユニークなインデックスは重複できませんが、not null を指定しないとユニークなインデックスがインデックスは null にすることも、複数にすることもできます。
3) 一意のインデックスはどのような場合に使用しますか? 特定の列のデータが繰り返されない場合にのみ使用できます
4) 一意のインデックスも非常に効率的ですので、最初に使用することを検討してください
1.1.3 通常のインデックスを作成するテーブルを作成するときに直接インデックスを作成し、特定のインデックスを指定します 列または特定の列は通常のインデックスです

mysql> create table aaa(id int,name varchar(64) not null default ”,namevarchar(64) not null default ” index);
ログイン後にコピー

テーブル作成後に通常のインデックスを作成します

 1)mysql> create index ind_name on aaa (name);
  2)mysql> alter table aaa add index(name);
ログイン後にコピー

特徴
1) テーブル内に複数の通常インデックスが存在でき、 1 つの通常のインデックスは複数の列を指すこともできます
2) 通常 インデックス列のデータは繰り返すことができます
3) 効率は比較的低いです
1.1.4 全文インデックスの作成
概要: 全文インデックスはインデックスです記事、漢字、英語に対応し、記事内のキーワードを素早く取得できます

CREATE TABLE articles (
  id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
  title VARCHAR(200),
  body TEXT,
  FULLTEXT (title,body)
  ) engine myisam charset=utf8;
ログイン後にコピー

使い方: select * from items where match(body) Against('weather');
特徴
1) Mysqlのデフォルトのfull-テキストインデックス、myisam ストレージエンジンにのみ有効
2) Mysql のデフォルトのフルテキストインデックス、英語のみサポート
3) ストップワード: 特に一般的な文字の場合、インデックスは構築されません
4) 一致度: フルテキストインデックス一定の確率でマッチングされます。
mysqlの全文インデックスが中国語をサポートしていない問題の解決方法
1) mysql用の中国語検索プラグインmysqlcftを使用します
2) 中国語専用の検索エンジンsphinx中国語版(coreseek)を使用できます 1.2 インデックスクエリ
desc テーブル名
テーブル名 G からキーを表示
テーブル名 G からインデックスを表示
テーブル名 G からインデックスを表示
1.3 インデックス変更
先に削除して追加
1.4 インデックス削除
DROP INDEX インデックス名 ON table;
ALTERTABLE テーブル名 DROP INDEX インデックス名;
1.6 インデックス作成に関する注意事項: クエリ条件として頻繁に使用されるフィールドは、たとえ頻繁に更新されるフィールドであっても、インデックスを作成する必要があります。インデックスの作成には適していません。WHERE 句は表示されません。フィールドはインデックスを作成しないでください。

さらに関連する内容については、PHP の中国語 Web サイト (www.php) を参照してください。 .cn)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート