为什么需要索引
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能
非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查
索引的优缺点
索引的数据结构
b+树
索引的分类
1.普通索引index :加速查找
2.唯一索引
主键索引:primary key :加速查找+约束(不为空且唯一)
唯一索引:unique:加速查找+约束 (唯一)
3.联合索引
-primary key(id,name):联合主键索引
-unique(id,name):联合唯一索引
-index(id,name):联合普通索引
4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
5.空间索引spatial :了解就好,几乎不用
创建/删除索引语法
```
create table stu(id int primary key not null,
name varchar(10) not null ,
age int not null ,
profession varchar(10) ,
phone varchar(12),
birthday date);
create index idx_name on stu(name);/*创建name字段索引*/
create unique index idx_phone on stu(phone);/*创建phone字段的唯一索引*/
create index idx_age_profession_birthday on stu(age,profession,birthday);
/*创建联合索引*/
show index from stu;
drop index idx_name on stu;
drop index idx_phone on stu;
drop index idx_age_profession_birthday on stu;