
搞定面试官
文章平均质量分 87
程序员啊粥
比你优秀的人比你还努力,你有什么资格不去奋斗!
展开
-
搞定面试官 - 可以介绍一下 MySQL InnoDB 引擎的索引模型嘛?
大家好,我是啊粥。 接下来的几天我们会开启一个全新的系列文章,那就是搞定面试官系列,我会把常见的面试知识通过这个专栏写出来,比如我们常见的 Java、MySQL、Redis、MQ 以及其他的一些技术框架。 现在最先开启的是 MySQL 系列,今天先来分享我们最常见的一个面试问题,那就是关于 MySQL 的索引。 相信很多人在面试中会遇到关于 MySQL 索引的相关知识,从 MySQL 的架构到索引模型,然后再到表设计,SQL 优化等等。 首先,我们来看下索引是什么? 索引概述 索引是一种帮助 MySQL 高原创 2022-08-13 10:55:12 · 370 阅读 · 0 评论 -
搞定面试官 - 为什么在 MySQL 中使用 Delete 删除数据之后,表数据文件大小为什么没变?
大家好,我是啊粥,昨天我们介绍了 MySQL 索引的模型。 文末,我留了一个问题,在我们执行 delete 命令删除数据的时候,为什么表数据文件大小没变化。 这也是我以前面试遇到过的一个问题,今天就给大家分享一下具体原因。 一般来说,我们如果想删除整个变的情况下,我们会直接使用 drop table 来回收表空间,但这是建立在我们以后不再用这张表时。 但是我们在业务开发中,更长碰到的是使用 delete 来删除具体的业务数据行,InnoDB 在处理删除的时候会将空间地址标记为删除,但是并不会真正删除。因为它原创 2022-08-13 23:06:06 · 1638 阅读 · 0 评论 -
搞定面试官 - MySQL 中你知道如何计算一个索引的长度嘛?
大家好,我是程序员啊粥。 今天给大家分享一个我遇到过的比较少见的面试题,那就是 MySQL 中如何计算一个索引的长度。 说实话,我第一次遇到这个问题的时候想当然的以为索引长度就是我们建表时定义的字段长度,如果是联合索引,那就是多个字段长度相加。 事实证明,在我说出上述回答之后,面试官就让我带着简历跑路了。 于是乎,我仔细查阅了相关资料,发现索引长度这个计算方式还是有点意思的,索性给大家分享一下。 首先,我们要知道 MySQL Innodb 引擎对于索引的长度是有限制的,最大为 767 字节。 你采用不同的字原创 2022-08-13 23:21:36 · 477 阅读 · 0 评论 -
搞定面试官 - 可以讲一下你平时是如何进行 SQL 性能分析的嘛?
SQL 性能分析 大家好,我是程序员啊粥,这段时间一直在分享 MySQL 索引系列的文章,我们学会了B+ 树索引模型,以及索引长度的计算、明明使用 Delete 把数据删除了,但是为什么磁盘上的数据文件大小没变?等内容,今天开始我们学习 SQL 的优化。 说起 SQL 优化,我们需要知道一个 SQL 的执行频率,假如说你有一条慢 SQL,好几个月才执行一次,那我觉得你其实也没啥花费精力优化它的必要,毕竟执行频率太低,投入产出比不足。 SQL 执行频率 关于查询 SQL 执行频率,我们可以使用 show gl原创 2022-08-14 17:33:42 · 2032 阅读 · 0 评论 -
搞定面试官 - 可以介绍一下在 MySQL 中你平时是怎么使用 COUNT() 的嘛?
大家好,我是程序员啊粥。 相信在大家的工作中,有很多的功能都需要用到 count(*) 来统计表中的数据行数。同时,对于一些大数据的表,用 count 都是瑟瑟发抖,往往会结合缓存等进行处理。 那么,我们今天就来分析一下,在 InnoDB 中,关于 count 的一些处理措施和优化。 常见的 count 使用方式有三种 count(*) count(主键 Id)/count(某个字段) count(1) 首先 count(*)、count(主键 Id)/count(某个字段) 和 count(1) 都表原创 2022-08-15 00:07:18 · 884 阅读 · 1 评论 -
搞定面试官 - 你可以介绍一下在 MySQL 中,哪些情况下索引会失效嘛?
关于索引失效和索引使用原则,需要遵循最最前缀匹配原则,这是 B+ 树的索引模型决定的。此外,不当的使用方式,会造成索引的部分失效,比如范围查询、字符串不加引号,使用索引列字段进行函数运算以及使用 Or 查询条件时其中某个字段没有索引等等。......原创 2022-08-14 16:35:57 · 631 阅读 · 0 评论