1. 管理索引的语法
- 查看表存在的索引
show index from table_name
- 创建索引
alter table table_name ADD INDEX index_name (key_name);
alter table table_name ADD FULLTEXT index_name (key_name);
alter table table_name ADD INDEX index_name (key_name);
- 删除索引
alter table table_name DROP INDEX index_name;
注:还有一种通过 create index 和 drop index 语法,原理一样,不再赘述。
2. 索引分类
-
按索引实现方式划分
- Btree 一般用这个
- Hash 只是内部的实现
-
按功能划分
- 普通索引: 单纯为了加快查询速度。全文索引:针对text字段类型加索引。
- 唯一索引: 加快查询速度,且约束该列的值不能重复。
- 主键索引: 和唯一索引功效类似,但是一张表只能有一个主键索引,而唯一索引有多个。
3. 索引相关的概念
-
聚集索引(聚簇索引)
InnoDB表都有一个称为聚集索引的特殊索引(默认主键,没有则选唯一键,都没有则选择隐式的rowid键) -
二级索引(非聚簇索引)
所有非聚集索引,都称为二级索引。 -
单列索引
索引只涉及一个列 -
多列索引(复合索引、联合索引、组合索引)
索引涉及多个列(最多16列) -
覆盖索引
这不是一种索引,指的这种场景:“查询语句所需要的列,被包含在查询条件中的索引列里边”
例:select count(a.user_id) from tb_users where a.user_id <1000
如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~
网友评论