1、定义
索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能
非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。
索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。
索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。
可想而知!!非常重要的概念!!!2、MySQL的索引分类
索引分类
1.普通索引index :加速查找
2.唯一索引
主键索引:primary key :加速查找+约束(不为空且唯一)
唯一索引:unique:加速查找+约束 (唯一)
3.联合索引
\-primary key(id,name):联合主键索引
\-unique(id,name):联合唯一索引
\-index(id,name):联合普通索引
4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
5.空间索引spatial :了解就好,几乎不用 3、创建
- `善用帮助文档`
- `help create`
- `help create index`
- `==================`
- `1.创建索引`
- `-在创建表时就创建(需要注意的几点)`
- `create table s1(`
- `id int ,#可以在这加primary key`
- `#id int index #不可以这样加索引,因为index只是索引,没有约束一说,`
- `#不能像主键,还有唯一约束一样,在定义字段的时候加索引`
- `name char(20),`
- `age int,`
- `email varchar(30)`
- `#primary key(id) #也可以在这加`
- `index(id) #可以这样加`
- `);`
- `-在创建表后在创建`
- `create index name on s1(name); #添加普通索引`
- `create unique age on s1(age);添加唯一索引`
- `alter table s1 add primary key(id); #添加住建索引,也就是给id字段增加一个主键约束`
- `create index name on s1(id,name); #添加普通联合索引`
- `2.删除索引`
- `drop index id on s1;`
- `drop index name on s1; #删除普通索引`
- `drop index age on s1; #删除唯一索引,就和普通索引一样,不用在index前加unique来删,直接就可以删了`
- `alter table s1 drop primary key; #删除主键(因为它添加的时候是按照alter来增加的,那么我们也用alter来删)`
复制代码
|