Mysql的索引是什么?Mysql学习
老男孩IT教育
常见问题
2021年6月17日 11:06
提到Mysql,大家都知道是数据库,最基本的操作就是增删改查,有很多小伙伴觉得学会这些Mysql就算学完了,并不是,无论哪个技术,都有复杂的东西,只不过我们自动忽视了而已,对于一些复杂的查询,比如嵌套查询、关联表查询等等,很多小伙伴就看不太懂,或者需要较长时间去理解,所以学无止境,本期为大家带来Mysql索引的一些问题:
提到Mysql,大家都知道是数据库,最基本的操作就是增删改查,有很多小伙伴觉得学会这些Mysql就算学完了,并不是,无论哪个技术,都有复杂的东西,只不过我们自动忽视了而已,对于一些复杂的查询,比如嵌套查询、关联表查询等等,很多小伙伴就看不太懂,或者需要较长时间去理解,所以学无止境,本期为大家带来Mysql索引的一些问题:
索引是什么?为什么要建立索引?
这是很多小白都关注的问题,通俗来讲,索引相当于一本书的目录,有了目录,我们寻找所需要的目标时,是不是效率会很高?索引也是同样的,使用它可以快速找出某列的某行,如果不适用它,Mysql就只能从第一条记录开始慢慢找,对于一些简单的表来说,影响不太大,但对于几万甚至更高的数据表来说,如果查询速度慢,是很影响用户体验的。
索引的优缺点有哪些?
凡事都有双面性,有优点自然也会有缺点,索引同样也是。
优点:所有的字段都可以添加索引,使用较方便,能够加快数据的查询速度,增强用户体验度。
缺点:创建和维护索引需要大量时间,随着数据量的增大,所耗费的时间也会增长,索引也需要占用一定的空间,在对数据表中的数据进行增删改时,索引也需要进行维护。
通过上面说到的优点和缺点,大家可以看出,并不是每个字段都必须要加上索引,索引也不是设置的越多就越好,也就是要有个度。
索引的使用场景有哪些?
那么什么情况下用索引合适呢?这也是有选择性的。
·对于经常更新的表,就要避免过多的索引,但对于经常查询的字段,就可以创建索引。
·数据量不大的表,可以不适用索引,因为本身数据量较少,所以不会太影响查询速度,但如果这个时候添加了索引,就有些画蛇添足了,意思就是索引不会起到太大的优化效果,创建与否作用不大。
索引都分为哪些?
索引也是分类的,也有不同的存储引擎,比如Myisam、InnoDB,也就是常说的BTREE,它只支持BTREE索引,不能更换。
MEMORY和HEAP存储引擎,支持HASH和BTREE索引。
索引分为单列索引(普通索引、唯一索引、主键索引)、组合索引、全文索引等等。
单列索引:顾名思义,一个索引只包含一个列,但一个表中可以有多个单列索引。
·普通索引:MySQL中基本索引类型,允许在定义索引的列中插入重复值和空值,为了查询速度更快些。
·唯一索引:索引列的值必须是唯一的,允许为空。
·主键索引:与唯一索引相反,允许为空。
组合索引:为表中多个字段添加索引,但需遵从左前缀原则。
全文索引:只有在MyISAM引擎中才能使用,比如在一堆数据中,通过某个关键字,就能找到该字段的记录行。
细分还有很多很多,有想要学习MYSQL技术的小伙伴们,欢迎来老男孩教育,我们专注于培养互联网技术人才,讲课老师有着多年的技术经验,分为线上、线下班,小伙伴们可以根据自身情况进行选择,欢迎大家来试听免费课~
推荐阅读:
