この記事でわかることは、mysql インデックスとは何なのかということです。誰もが mysql インデックスを簡単に理解できるように、mysql インデックスについて簡単に説明しましょう。困っている友人は参考にしていただければ幸いです。
1: インデックスとは
インデックス自体は、データ テーブルの特定のフィールドが記録される独立した記憶単位です。 . とフィールドに対応する物理空間。インデックス内にはアルゴリズムがサポートされているため、クエリ速度が非常に速くなります。 [推奨関連ビデオ チュートリアル: mysql チュートリアル ]
インデックスを使用すると、インデックスを条件として、速度に基づいてデータ クエリを実行できます。非常に高速です
1. インデックス自体には「 アルゴリズム 」がサポートされており、検索したい キーワード (フィールド) を素早く見つけることができます
# 2. インデックスフィールド は 物理アドレス と直接対応しているため、探したい情報を素早く見つけることができます
データ テーブル内のすべてのフィールドにインデックスを付けることができます2 番目のインデックス タイプ
1、4 つのタイプ: (1) 主キー プライマリ キー 主キーのインデックス、インデックスに auto_increment を設定する必要があります。列の値は null にすることはできず、一意である必要があります。(2) 一意の一意のインデックスインデックス列の値は、次のとおりにすることはできません。繰り返しますが、null 値も許可されます(3) 通常のインデックスインデックスインデックス列の値は繰り返し可能です。 (4) フルテキストインデックスフルテキストインデックスMyisam データテーブルはこのインデックスを設定できます 2、複合インデックス インデックスは 2 つまたは複数の列で構成され、複合インデックスまたは結合インデックスと呼ばれます。#3. インデックスを作成します
#1. テーブルを作成する場合1)、メンバーテーブルを作成する際に、各種インデックスを作成します。 create table member(
id int not null auto_increment comment '主键',
name char(10) not null default '' comment '姓名',
height tinyint not null default 0 comment '身高',
old tinyint not null default 0 comment '年龄',
school varchar(32) not null default '' comment '学校',
intro text comment '简介',
primary key (id), // 主键索引
unique index nm (name), //唯一索引,索引也可以设置名称,不设置名字的话,默认字段名
index (height), //普通索引
fulltext index (intro) //全文索引
)engine = myisam charset = utf8;
//注:一般设置主键后,会把主键字段设置为自增。(alter table member modify id int not null auto_increment comment '主键';)
alter table member add primary key(id);
alter table member add unique key nm (name);
alter table member add index(height);
alter table member add fulltext index(intro);
alter table member add unique key nm (name,height);
2、インデックスを削除
##alter table 表名 drop primary key;//删除主键索引
auto_increment 属性がこの主キー フィールドに存在する場合は、最初に削除する必要があります。 (alter table table name edit Primary key int not null comment 'primary key')
データ テーブル フィールドの auto_increment 属性を削除します。
alter table 表名 drop index 索引名称; //删除其它索引(唯一,普通,全文)
alter table member drop index nm;
4. Explain インデックスが使用されているかどうかを確認します
具体的な操作:Explain クエリ SQL ステートメントこれは、主キー インデックスが設定されていない場合です: (実行速度と効率が低い)
主キーを追加した後:
5. インデックス付けに適したシナリオ
1. Where クエリ条件 (where の後に設定されるクエリ条件フィールドはすべてインデックス作成に適しています)。2. クエリの並べ替え (フィールド順) #6. インデックスの原則
#1.原則
select * from emp where empno = 1325467;//empno条件独立,使用索引 select * from emp where empno+2 = 1325467;//empno条件不独立,只有独立的条件字段才可以使用索引
のような %: 複数のファジーコンテンツを関連付けます
_: ファジーコンテンツを関連付ける例:
select * form 表名 where a like "beijing%";//使用索引 select * from 表名 where a like "beijing_";//使用索引 select * from 表名 where a like "%beijing%”;//不使用索引 select * from 表名 where a like "%beijing";//不使用索引
3, 複合インデックスインデックス (a,b)
select * from 表名 where a like "beijing%";//使用索引 select * from 表名 where b like "beijing%;//不使用索引 select * form 表名 where a like "beijing%" and b like "beijng%";//使用索引
4 ,または原則
OR の関連条件には、インデックスを使用する前にすべてインデックスが必要です。例: (index(a)、index(b))
select * from 表名 where a = 1 or b = 1;//使用索引 select * from 表名 where a = 1 or c = 1;//没有使用索引
要約: 上記がこの記事の全内容です。お役に立てば幸いです。みんなの勉強に役立ちました。
以上がmysqlインデックスとは何ですか? mysql インデックスに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。