【面试题库】150 道大厂常考的 MySQL 高频面试题,你会几道?

一、 Mysql 索引 1.1 Mysql 如何实现的索引机制? InnoDB 索引与 MyISAM 索引实现的区别是什么? 一个表中如果没有创建索引,那么还会创建 B+ 树吗? 1.2 说一下 B+ 树索引实现原理(数据结构) 聚簇索引与非聚簇索引 B+ 树实现有什么区别? 说一下 B+ 树中聚簇索引的查找(匹配)逻辑? 说一下 B+ 树中非聚簇索引的查找(匹配)逻辑? 平衡二叉树,红黑树,B
【面试题库】150 道大厂常考的 MySQL 高频面试题,你会几道?

MySQL 必知必会(16)视图:如何简化查询?

举个小例子,在学校的信息系统里面,为了减少冗余数据,学生档案(包括姓名、年龄等)和考试成绩(包括考试时间、科目、分数等)是分别存放在不同的数据表里面的,但是,我们经常需要查询学生的考试成绩(包括学生姓名、科目、分数)。这个时候,我们就可以把查询学生考试成绩的这个关联查询,用视图的形式保存起来。这样一来,我们不仅可以从视图中直接查询学生考试成绩,让查询变得简单,而且,视图没有实际存储数据,还避免了数
MySQL 必知必会(16)视图:如何简化查询?

MySQL 必知必会(15)临时表:复杂查询,如何保存中间结果?

  当我们遇到一些复杂查询的时候,经常无法一步到位,或者是一步到位会导致查询语句太过复杂,开发和维护的成本过高。这个时候,就可以使用临时表。 下面,我就结合实际的项目来讲解一下,怎么拆解一个复杂的查询,通过临时表来保存中间结果,从而把一个复杂查询变得简单而且容易实现。 临时表是什么? 临时表是一种特殊的表,用来存储查询的中间结果,并且会随着当前连接的结束而自动删除。MySQL 中有 2
MySQL 必知必会(15)临时表:复杂查询,如何保存中间结果?

MySQL 必知必会(14)事务:怎么确保关联操作正确执行?

我们经常会遇到这样的场景:几个相互关联的数据操作,必须是全部执行,或者全部不执行,不可以出现部分执行的情况。比如说,你从微信账号里提现 100 元到银行卡上,这个动作就包括了相互关联的 2 个步骤,首先是微信账号减 100 元,然后是银行卡账号加 100 元(这里假设没有手续费)。假如因为某种异常,这 2 个操作只执行了一个,另外一个没有执行,就会出现你的钱少了 100 元,或者你的钱多了 100
MySQL 必知必会(14)事务:怎么确保关联操作正确执行?

MySQL 必知必会(13)索引:如何提高查询的速度?

在我们的超市信息系统刚刚开始运营的时候,因为数据量很少,每一次的查询都能很快拿到结果。但是,系统运转时间长了以后,数据量不断地累积,变得越来越庞大,很多查询的速度就变得特别慢。这个时候,我们就采用了 MySQL 提供的高效访问数据的方法——索引,有效地解决了这个问题,甚至之前的一个需要 8 秒钟才能完成的查询,现在只用 0.3 秒就搞定了,速度提升了 20 多倍。 那么,索引到底是啥呢?该怎么使用
MySQL 必知必会(13)索引:如何提高查询的速度?

MySQL 必知必会(12)如何进行数学计算、字符串处理和条件判断?

MySQL 提供了很多功能强大,而且使用起来非常方便的函数,包括数学函数、字符串处理函数和条件判断函数等。 在很多场景中 ,我们都会用到这些函数,比如说,在超市项目的实际开发过程中,会有这样的需求: 会员积分的规则是一元积一分,不满一元不积分,这就要用到向下取整的数学函数 FLOOR(); 在打印小票的时候,收银纸的宽度是固定的,怎么才能让打印的结果清晰而整齐呢?这个时候,就要用到 CONCAT(
MySQL 必知必会(12)如何进行数学计算、字符串处理和条件判断?

MySQL 必知必会(11)时间函数:时间类数据,MySQL是怎么处理的?

顾名思义,时间函数就是用来处理时间的函数。时间,几乎可以说是各类项目中都会存在的数据,项目需求不同,我们需要的时间函数也不一样,比如: 如果我们要统计一天之中不同时间段的销售情况,就要获取时间值中的小时值,这就会用到函数 HOUR(); 要计算与去年同期相比的增长率,这就要计算去年同期的日期时间,会用到函数 DATE_ADD(); 要计算今天是周几、有没有优惠活动,这就要用到函数 DAYOFWEE
MySQL 必知必会(11)时间函数:时间类数据,MySQL是怎么处理的?

MySQL 必知必会(10)聚合函数:怎么高效地进行分组统计?

  MySQL 中有 5 种聚合函数较为常用,分别是求和函数 SUM()、求平均函数 AVG()、最大值函数 MAX()、最小值函数 MIN() 和计数函数 COUNT()。接下来,我就结合超市项目的真实需求,来带你掌握聚合函数的用法,帮你实现高效的分组统计。 咱们的项目需求是这样的:超市经营者提出,他们需要统计某个门店,每天、每个单品的销售情况,包括销售数量和销售金额等。这里涉及 3
MySQL 必知必会(10)聚合函数:怎么高效地进行分组统计?