Mysql相关 (https: xiaolincoding.com mysql )

1, explain命令的各个字段解释

关键字段:

type 查询方式

  • ✅ 优秀: system, const, eq_ref, ref
  • ⚠️ 可接受: range, index_merge
  • 🔴 需要优化: index(全索引扫描), ALL(全表扫描)

extra 数据处理方式

索引相关
Using index
Using index condition (用到了联合索引的一部分查找,另一部分在索引树上过滤)
Using where (先走索引查找,然后在服务层过滤, 可以通过联合索引优化到Using index condition)   ----  中优先级   
排序相关
Using filesort  (order by后面的字段需要添加索引)              ----  高优先级   
Using temporary  (distinct使用覆盖索引优化,避免临时表的产生)  ----  高优先级
连接相关
Using join buffer (Block Nested Loop)(被驱动表的连接字段上创建索引)                         ----- 中优先级
Using MRR (Multi-Range Read)
其他
Impossible WHERE
Select tables optimized away
Distinct 
No tables used

rows 扫描行数

key 实际使用的索引

filtered 引擎返回的数据100条,过滤后剩下的数据的百分比20,即剩下数据为100*20% = 20条,越低表示引擎的过滤效果越差

key_len 可以分辨联合索引是否部分使用到了

2, Innodb和Myslam的区别

事务
行锁/表锁
外键
崩溃恢复
count(*)
聚簇索引和索引数据分离
myslam不支持事务,查询的时候不需要通过mvcc,直接从索引找到数据位置,然后读取数据速度更快

3,mysql架构图

alt

3.1,一条sql的执行

连接器:建立连接,管理连接、校验用户身份;
查询缓存:查询语句如果命中查询缓存则直接返回,否则继续往下执行。MySQL 8.0 已删除该模块;
解析器:解析SQL,通过解析器对 SQL 查询语句进行词法分析、语法分析,然后构建语法树,方便后续模块读取表名、字段、语句类型;
执行 SQL:执行 SQL 共有三个阶段:

预处理阶段:检查表或字段是否存在;将 select * 中的 * 符号扩展为表上的所有列
优化阶段:基于查询成本的考虑, 选择查询成本最小的执行计划;
执行阶段:根据执行计划执行 SQL 查询语句,从存储引擎读取记录,返回给客户端;

4,一行记录的存储

alt

变长列表和NULL列表倒序存放
compact 紧凑排列(页溢出时存放768前缀+指针) dynamic (页溢出直接存放指针20字节) compressed(压缩整个数据页)
记录头信息:delete_mask next_record(单链表 vs 同一层页节点之间是双链表) record_type, deepseek上说是记录头在最前面

5,索引

前缀索引:对字符串的前几个字符建立索引,不需要在整个字段上建立索引,这样可以减少索引占用的存储空间
联合索引:范围查询的情况下,范围查找字段后面的字段无法用到联合索引
(a,b)这个索引,a>1 and b=2 和 a>=1 and b=2的查询方式不同,确定的查询起点可以走联合索引,在页面的索引槽中找到下一个a的起始位置,举例:查找今天已经回放的sql的分片数量。 对于 >=、<=、BETWEEN、like 前缀匹配的范围查询,并不会停止匹配

#mysql#
总结面试经验 文章被收录于专栏

1111111111

全部评论

相关推荐

目前只有快手和大疆的结果没出来,后续就算约面应该也不会继续面了,国庆后直接入职了,所以简单复盘一下bg:民办本双非硕&nbsp;&nbsp;蔚来-&gt;b站-&gt;百度秋招准备:1.力扣hot100战神,实习期间疯狂刷。2.因为经历了三段找工作的八股修炼,在八月初开始看了两周就开始面试了,并且牛客重度使用者。3.实习项目熟悉,并且在后续面试不断完善。秋招timeline:八月中上旬开始大量投递简历,八月中下旬开始接到一些面试,八月底到九月初面试高峰期,有时候一天三面,九月中旬差不多面试结束,整个过程大概是一个月左右,因为学历不太好,也准备的不太够,提前批基本上没怎么投,投的也挂了。总结:首先,强烈不推荐边实习边面试,我真的非常后悔没有在八月初离职,当时是想着百度这边转正保底,结果我还是在没有任何意向的情况下就撕了,因为想着破釜成舟,当时每天白天工作晚上准备,真的非常非常累,别为了转正而堵死了秋招!我是整个秋招都在实习,后面还累的发烧了几天,完全就是透支。因为投递的早,基本上也都给面了,感觉现在真的是金八银九了,越早投越好,而且秋招流程漫长,简历过了还要笔试,整体时间跨度很长,所以真的很建议要早点投。然后选择也很重要,感觉后端真重灾区,前端会容易些。保持良好心态,慢慢准备,总会赢的!oc:百度:实习转正&nbsp;(已撕)字节:生服&nbsp;8.25一面&nbsp;&nbsp;9.02二面挂&nbsp;&nbsp;&nbsp;广告&nbsp;9.08一面&nbsp;9.10二面&nbsp;9.15三面&nbsp;9.17四面&nbsp;9.19hr面&nbsp;9.22oc滴滴:9.02一面&nbsp;9.04二面&nbsp;9.08三面&nbsp;9.18oc腾讯:8.27一面&nbsp;8.29二面&nbsp;9.02hr面&nbsp;9.11oc(需要先实习再确定能不能转正,已撕)泡池子:快手:9.01一面&nbsp;9.10二面&nbsp;9.23&nbsp;hr面大疆:8.28一面&nbsp;9.11二面面试挂:美团金服:8.27一面挂&nbsp;9.10一面还是挂钉钉:8.27一面&nbsp;9.03二面挂b站生态技术:8.26一面挂京东零售:8.18一面&nbsp;&nbsp;8.22二面&nbsp;8.30线下hr面挂米哈游增长:8.19一面挂游戏科学:8.07一面挂小红书社区:8.21一面挂识货:实习转正oc拒笔试结束:小米陌陌简历挂:阿里系除钉钉,携程,pdd筛选中:网易&nbsp;去哪儿&nbsp;小鹏&nbsp;理想
一句话证明你在找工作
点赞 评论 收藏
分享
头像
09-07 22:26
门头沟学院 HRBP
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务