MySQL索引类型全面详解(4种最常用索引类型)

MySQL索引类型全面详解(4种最常用索引类型)-mikechen

MySQL索引类型主要分为:​​主键索引​​​、​​唯一索引​​​、​​普通索引​​​和​、全文索引,下面分别详解。​

MySQL主键索引

1.主键索引简介

主键索引,英文全称Primary Key,简称为主键,主键是一种唯一性索引,每个表只能有一个主键。

 

2.主键索引作用

主键索引可以提高查询效率,并提供唯一性约束,一张表中只能有一个主键。

 

3.主键索引语法

alert table tablename add primary key(`字段名`)

 

4.主键索引原则

在MySQL中,InnoDB数据表的主键设计我们通常遵循几个原则:

1)采用一个没有业务用途的自增属性列作为主键;

2)主键的数据类型最好是数值,比如:编号;

3)主键字段值总是不更新,只有新增或者删除两种操作;

4)不选择会动态更新的类型,比如当前时间戳等。

 

MySQL普通索引

主键索引是在搜索条件为主键的时候才会发挥作用,但是我要以name=’mikechen’为搜索条件怎么办?这就需要涉及普通索引。

对name这种单个列添加的索引叫做普通索引,也叫二级索引。

 

1.普通索引简介

普通索引(index)顾名思义:就是各类索引中最为普通的索引。

 

2.普通索引作用

普通索引最主要的作用:就是提高查询速度。

 

3.普通索引语法

alter table table_name add index(`字段名`);

 

4.普通索引原则

普通索引应该只为那些最经常出现在查询条件(WHERE column =)或排序条件(ORDER BY column)中的数据列创建索引。

只要有可能,就应该选择一个数据最整齐、最紧凑的数据列,比如:一个整数类型的数据列来创建索引。

 

MySQL唯一索引

1.唯一索引简介

mysql中唯一索引的关键字是unique index,唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值。

 

2.唯一索引作用

相对于普通索引,唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。

除此之外还有一个明显的作用:创建唯一索引可以避免数据出现重复。

 

3.唯一索引语法

alter table 表名 add unique(列名)

 

4.唯一索引原则

业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。

不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的。

 

MySQL全文索引

1.全文索引简介

全文索引指的是:将存储在数据库中的整本书或整篇文章中的任意内容信息查找出来的技术。

 

2.全文索引作用

全文索引与普通的索引不是一回事,在查找上方面其效率是普通模糊(like)查询和N倍,是MySQL专门提供用作搜索引擎的。

 

3.全文索引语法

alter table 表名 add fulltext (列名)

 

4.全文索引原则

全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR、TEXT列创建。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法