婀娜婀娜 发表于 2023-6-18 17:26:35

【后端面经】MySQL主键、唯一索引、联合索引的区别和作用

目录

[*]0. 简介
[*]1. 主键
[*]2. 唯一索引
[*]3. 联合索引
[*]4. 索引对数据库操作的影响
[*]5. 其他索引

[*]5.1 普通索引
[*]5.2 全文索引
[*]5.3 前缀索引

[*]6. 总结
[*]7. 参考资料

0. 简介

索引是一类特殊的文件,用来存储检索信息,使数据库查找更加快速。
1. 主键

主键是一类特殊的唯一索引,选择某一列元素作为主键,用来表示每一行元素的特殊性,其特点如下

[*]在一个数据表中只有一个主键;
[*]主键不能为空(null);
[*]主键的列数据不能重复(唯一索引的特点)。
2. 唯一索引

唯一索引是数据库中的一个索引类型,用来保证某列元素的数据唯一性,其特点如下:

[*]一个数据表中可以有多个唯一索引;
[*]唯一索引可以为空(null);
[*]唯一索引的列数据不能重复。
3. 联合索引

当一个索引由多个列组成时,称为联合索引,主要用于快速查找某一特殊元素,其特点如下:

[*]列顺序很重要:ABC和CBA是两类不同的联合索引;
[*]一个数据表中可以有多个联合索引。
4. 索引对数据库操作的影响

索引的使用目的是为了加快查找数据的速度。

[*]读(查找数据)
通过检索索引文件而不是整个数据库文件,能够加快读数据的速度。
[*]写(更新数据、增删改)
索引文件是独立于数据文件的,因此在写数据的时候,需要同时更新索引文件和数据文件,因此会降低写数据的速度。
5. 其他索引

5.1 普通索引

和一般索引相比,允许列数据重复,作用是加快数据访问速度。特点如下:

[*]一个数据表中可以有多个唯一索引;
[*]普通索引可以为空(null);
[*]普通索引的列数据能重复。
5.2 全文索引

用来加快对大文本数据关键字的检索,MySQL5.6之后InnoDB也支持该索引。
5.3 前缀索引

仅针对字符串类型的数据,只索引字符串的前几个字符,而不是整个字符串。因此索引文件更小。
6. 总结

对上述的几种索引的特点对比如下所示:

7. 参考资料

参考博客-1
参考博客-2

来源:https://www.cnblogs.com/CrazyPixel/p/17488866.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【后端面经】MySQL主键、唯一索引、联合索引的区别和作用