ホームページ  >  記事  >  データベース  >  mysqlインデックスの使い方

mysqlインデックスの使い方

藏色散人
藏色散人オリジナル
2019-05-10 09:22:107810ブラウズ

mysql インデックスの使用方法: [alter table table_name addindex インデックス名 (列)]、これは通常のインデックスを追加することを意味します。 mysql インデックスの目的は、クエリ効率を向上させることです。

mysqlインデックスの使い方

mysql インデックスの目的は、辞書に匹敵するクエリの効率を向上させることです。「mysql」という単語を検索したい場合は、次のようにします。間違いなく m 文字を見つけてから、Go down から始めて y 文字を見つけ、それから残りの SQL を見つける必要があります。索引がないと、必要な内容を見つけるためにすべての単語に目を通さなければならない場合があります。

(推奨チュートリアル: mysql ビデオ チュートリアル )

インデックスを作成するときは、SQL クエリにどの列を使用するかを考慮して、1 つ以上の列を作成する必要があります。これらの列のインデックス。実際、インデックスは主キーまたはインデックス フィールドを保持するテーブルでもあり、各レコードが実際のテーブルを指すポインタでもあります。インデックスはデータベース ユーザーには表示されず、クエリを高速化するためにのみ使用されます。データベース検索エンジンは、インデックスを使用してレコードをすばやく見つけます。

Mysql には 4 種類のインデックス (主キー インデックス/通常インデックス/全文インデックス/ユニーク インデックス)が存在します。

1. インデックスの追加

1.1 主キー インデックスの追加

テーブルで列を主キーとして設定すると、その列が主キー インデックスになります。

create table a(  
id int primary key auto_increment,  
name varchar(20) not null default ''  
);  
//这里id就是表的主键

テーブルの作成時に主キー インデックスを指定しない場合は、テーブルの作成後に追加することもできます。テーブル:

alter table table_name add primary key (column name);

1.2 通常のインデックス

通常のインデックスはテーブルの作成後に追加されます。

create index 索引名 on table_name(column1,column2);
alter table table_name add index 索引名(column1,column2);

1.3 フルテキスト インデックス

最初のすべて、全文インデックスは主に記事、タイトルなどのテキスト ファイル用であり、全文インデックスは MyISAM でのみ有効です (InnoDB は mysql5.6 以降でも全文インデックスをサポートしています)

create table c(  
id int primary key auto_increment ,  
title varchar(20),  
content text,  
fulltext(title,content)  
)engine=myisam charset utf8;  
  
insert into c(title,content) values  
    ('MySQL Tutorial','DBMS stands for DataBase ...'),  
    ('How To Use MySQL Well','After you went through a ...'),  
    ('Optimizing MySQL','In this tutorial we will show ...'),  
    ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),  
    ('MySQL vs. YourSQL','In the following database comparison ...'),  
    ('MySQL Security','When configured properly, MySQL ...');

よくある間違いフルテキスト インデックスを使用する場合:

select * from c where content like "%mysql%";

ここではフルテキストは使用されません。インデックスは Explain を使用して表示できます。正しい使用法:

select *  from c where match(title,content) against ('MYSQL');

備考:

1. mysql のフルテキスト インデックスは、myisam

2 に対してのみ有効です。mysql 自体によって提供されるフルテキストは、English->gt に対して有効です。 ;sphinx( coreseek) 中国語を処理する技術

3. 使用方法は match(フィールド名..) 対('キーワード')

1.4 ユニークなインデックス

create table d(id int primary key auto_increment , name varchar(32) unique)

ですd テーブル内の名前 一意のインデックスです。一意のインデックスには複数の NULL を含めることができ、内容を繰り返すことはできません

#主キー インデックスと比較して、主キー フィールドを NULL にしたり繰り返したりすることはできません

2. インデックスのクエリ

show indexes from table_name;
show keys from table_name;

3. インデックスの削除

alter table table_name drop index 索引名;

以上がmysqlインデックスの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。