前言
我是沐风晓月,今天起,我的付费专栏《面试宝典》上线了,主要有几个优势:
- 最贴近面试市场,都是大佬们的学员或者公司的最新面试题
- 最详细的面试方法,近千名学员面试复盘总结下来的套路。
- 每套笔试题都有答案,每个面试题都有详解,让你学以致用。
凡是在专栏全部更新完成前订阅本专栏的用户,都将免费获得配套的视频教程,越早订阅越早受益。
面试场景
在面试云原生运维的过程中,能够面试到mysql常用索引有哪几种的概率比较小,但也是会遇到的。 比如mysql属于必会技术栈。
mysql索引
在 MySQL 数据库中,索引是一种特殊的数据结构,用于提高数据库表的查询效率。索引可以帮助数据库快速定位到包含特定值的数据,而不必扫描整个表。
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
Mysql索引主要有两种结构:B+Tree索引和Hash索引。我们平常所说的索引,如果没有特别指明,一般都是指B树结构组织的索引(B+Tree索引)。
-
索引(index):好比书的目录,用于加快查找的效率;
-
索引的作用:加快查找效率.减慢插入和删除,修改效率.(需要同步调整索引结果)
索引类型:
主键索引(Primary Key Index):用于唯一标识表中的每一行。
唯一索引(Unique Index):用于确保某列或某组列的唯一性。
普通索引(Index):最常见的索引类型,用于加快搜索和过滤操作。
全文索引(Full-Text Index):用于全文搜索,在包含大量文本的列上提供高效的文本搜索功能。
备注: 唯一索引和主键索引的区别: 主键索引不能为null
索引存在哪里
索引以文件形式储存在硬盘上,在MyISAM储存引擎中,数据和索引文件试试分开储存的。
frm结尾的是表结构,MYD结尾的是数据文件,MYI结尾的就是索引文件。
在InnoDB中,数据和索引文件是合起来储存的(里面的文件时.frm和.idb)
为什么要使用索引?
一般的应用系统,读写比例在10:1左右,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。
好处:方便查询,加快查询效率
缺点:索引占磁盘空间的,对索引列的数据进行增删改会索引进行重新维护排序。正在维护中的索引,会影响查询性能。
面试时候如何回答?
面试官: MySQL常用的索引有哪几种?
候选人: 好的面试官,mysql常用的索引类型有这几种:
主键索引(Primary Key Index):用于唯一标识表中的每一行。
唯一索引(Unique Index):用于确保某列或某组列的唯一性。
普通索引(Index):最常见的索引类型,用于加快搜索和过滤操作。
全文索引(Full-Text Index):用于全文搜索,在包含大量文本的列上提供高效的文本搜索功能。
唯一索引和主键索引的区别: 主键索引不能为null,索引虽然好,但也有一些限制和不足:
- 索引会占用存储空间,特别是对于大型表和多列索引来说。因此,索引的创建和维护需要考虑存储需求和性能权衡。
- 对于频繁更新的列,索引的维护可能会导致写操作的性能下降。
- 如果查询条件不包含索引列,或者对索引列进行了函数操作或者范围查询,索引可能无法被利用,性能提升有限甚至没有。
总结
面试万变不离其宗,在回答面试官的问题的时候,要尽量使用案例,如果没有案例,就尽量阐述自己对问题的理解和尽可能多但又不杂乱的知识点。