MySQL之基础索引
目录
引言
1、创建索引
2、索引的原理
2、索引的类型
3、索引的使用
1.添加索引
2.删除索引
3.删除主键索引
4.修改索引
5.查询索引
引言
当一个数据库里面的数据特别多,比如800万,光是创建插入数据就要十几分钟,我们查询一条信息也要几秒钟,查询多条还会更多
因此我们采用索引机制提升性能
1、创建索引
CREATE INDEX empno_index ON emp(empno)
对表的empno员工id进行创建索引(会增加数据库内存大小,索引本身也会占用空间),此时根据empno来查询信息会非常快,但是创建索引之后,只对创建了索引的列有效,因此我们需要根据其他列来查询信息那就需要重新创建索引
2、索引的原理
当我们使用普通的查询语句:
select * from emp where id = 8
数据库就会进行全表扫描,从第一行进行往下查询,当然,如果查到了也要继续往下查,因为还有查看是否有重复的,比如说性别
索引的结构:
为什么索引会很快,是因为形成了一个索引的数据结构,比如二叉树
代价:1.磁盘占用、2.对dml(update delete insert)语句的效率有影响,因为改变数据库信息会改变数据库的数据结构
不过在实际项目中,select的语句会占90%以上,因此综合来说索引还是会大大提升数据库的性能
2、索引的类型
1.主键索引:主键自动的为主索引(primary key)
2.唯一索引(unique)
3.普通索引(index)
4.全文索引(fulltext)[适用于MyISAM]:一般用Solr和ES
3、索引的使用
1.添加索引
添加唯一索引
场景:id不可能重复,是唯一
create unique index id_index on t25 (id)
添加普通索引
场景:id可能重复
方式1:
creat index id_index on t25 (id)
方式2:
alter table t25 add index id_index (id)
添加主键索引
alter table t25 add primary key (id)
2.删除索引
drop index id_index on t25
3.删除主键索引
alter table t25 drop primary key
4.修改索引
先删除,再添加
5.查询索引
方式1:
show index from t25
方式2:
show indexes from t25
方式3:
show keys from t25
方式4:
desc t25