本文介绍了一下Mysql中的索引的分类,以及索引的语法
索引分类- 主键索引:针对表中主键创建的索引,设置主键后自动创建,只能有一个
- 唯一索引:避免同一个表中某数据列中的值重复,设置唯一约束后自动创建,可以有多个
- 常规索引:快速定位特定数据,可以有多个
- 全文索引:查找的是文本中关键词,而不是比较索引中的值,可以有多个
在InnoDB引擎中,根据索引的存储形式,又可以分为以下2种:
1.聚集索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据,必须有,且只有一个
2.二级索引:将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键,可以存在多个
聚集索引的选取规则 - 如果存在主键,主键索引就是聚集索引
- 如果不存在主键,将使用第一个唯一索引作为聚集索引
- 如果没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引
注:index_name-索引名称;table_name-表名称; index_col_name-列名称
1.创建索引
--UNIQUE和FULLTEXT代表指定创建的索引是唯一索引或者全文索引,不指定的话,就是普通索引 create [UNIQUE|FULLTEXT] index index_name on table_name(index_col_name,...);
2.查询索引
show index from table_name;
3.删除索引
drop index index_name on table_name;
下面是创建索引的示例
--为tb_user表中的name字段创建索引,索引名为idx_user_name create index idx_user_name on tb_user(name); --为tb_user表中的phone字段创建唯一索引,索引名为idx_user_phone create UNIQUE index idx_user_phone on tb_user(phone); --为tb_user表中的profession、age、status字段创建联合索引,索引名为idx_user_pro_age_sta create index idx_user_pro_age_sta on tb_user(prosession,age,status);
以上就是Mysql的索引分类和索引语法了,具体的索引使用,我还会出其他帖子,可以敬请期待,创作不易,觉得不错可以点赞收藏哦



