MySQL 核心机制精讲:B+树查询、Buffer Pool、COUNT 优化与 CHAR/VARCHAR 实战指南

一、请详细描述一下MySQLB+树查询数据的过程

B+树查询数据分两个阶段: 1. 先从根节点往下定位到叶子节点。 2. 在叶子节点内部定位到具体的数据行。

  1. 第一阶段是树的垂直查找,从根节点开始,要查询的键值和节点内存储的索引的键值作比较,通过二分查找,来确定落在哪个区间,重复这个过程,直到找到根节点。一棵三层的B+树最多经过三次磁盘IO就可以定位到叶子节点。
  2. 第二阶段是页内查找,叶子节点也是一个16KB大小的数据页,一个叶子节点能存很多数据,InnoDB通过目录页来加速查找。目录页把记录分成了多个组,每个槽记录组内的最大数;通过对目录页的二分查找能定位到对应的组,组内是通过单向链表连接的,通过对单项链表遍历就能找到目标记录。

整个过程:根节点->中间节点->叶子节点->二分查找目录页->遍历单向链表

二、Buffer Pool的作用

缓存热点数据页

实际查询时不是每次都从磁盘中读,Buffer Pool会缓存热点数据页,所以实际的查询过程是:

  1. 先在Buffer Pool中查询,有就直接用,不用走磁盘
  2. 没有就从磁盘里读取到数据页并写进Buffer Pool

三、MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?

三者都是统计行数的聚合函数,核心区别是对于null处理不同

  1. count(*)count(1)会统计所有的行,包括null
  2. count(字段名)不会统计字段名内为null的行。

四、如果要统计一张 5000 万行的订单表有多少条记录,直接 count(*) 太慢,你怎么优化?

  1. 如果允许存在误差的话,可以直接SHOW TABLE STATUS拿估算值,毫秒级反应。
  2. 如果不允许出现误差,又要求快速响应,可以在Redis里维护一个计数器。要处理好缓存一致性问题,例如事务消息或定期校验

五、count(*) 走的是主键索引还是二级索引?

  • 如果有二级索引的话走的是二级索引,因为二级索引只存储索引列和主键,占用空间小,扫描的数据页少,IO开销更低。
  • 具体可以用explain去分析key命中的索引

六、MySQL中CHARVARCHER的区别是什么?

CHAR是定长的,VARCHAR是变长的

  1. CHAR(10)不管存几个字符,都占10个字符的空间,不够用空格填充。
  2. VARCHAR(10)存多少占多少,最后在花1-2个字节记录长度。

七、VARCHAR(N) 的 N 会影响排序性能

  • MySQL 执行 ORDER BY 时会用到 sort_buffer,如果要排序的数据放不下,就得走 双路排序:先把排序字段和主键放进 sort_buffer 排好序,再回表取完整数据。多了一次回表,性能差不少。
-- a、b、c 都是 VARCHAR(1000),即使实际数据很短SELECTa,b,cFROMt1WHEREa='面试鸭'ORDERBYb;-- MySQL 按每行 3000 字符算空间,sort_buffer 放不下就走双路排序

八、CHAR 读取时会自动去掉尾部空格

CHAR 存储时会用空格填充到定长,读取时 MySQL 会自动去掉尾部空格。这可能导致意想不到的问题:

CREATETABLEt(cCHAR(5));INSERTINTOtVALUES('abc ');-- 故意存两个空格SELECTCONCAT('[',c,']')FROMt;-- 结果是 [abc],尾部空格被去掉了

九、什么时候用 CHAR?

别看 CHAR 好像很鸡肋,在特定场景下还是有优势的:

1)存储固定长度的编码,比如 ISO 国家代码 CHAR(2)、MD5 摘要 CHAR(32)、UUID 去掉横杠后 CHAR(32)

2)存储单字符的状态标记,比如性别 CHAR(1) 存 M/F

3)频繁更新的短字段,CHAR 不会产生碎片,VARCHAR 长度变化可能导致页分裂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1172834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

救命神器2026继续教育TOP10AI论文写作软件测评与推荐

救命神器2026继续教育TOP10AI论文写作软件测评与推荐 2026年继续教育领域AI论文写作工具测评维度解析 随着人工智能技术的不断进步,AI写作工具在学术研究与继续教育领域的应用日益广泛。然而,面对市场上琳琅满目的产品,如何选择真正适合自身需…

校友会2026年中国农林类大学排名,中国农业大学、华南农业大学珠江学院、新疆农业职业技术大学、江苏农林职业技术学院第一

为了给2026年全国高考考生报考中国农林类高校提供参考指南,2026年1月12日,全国第三方大学评价机构艾瑞深校友会网(Cuaa.net)撰写完成、科学出版社即将出版的《2026校友会中国大学排名:高考志愿填报指南》最新发布校友会2026中国农林类大学排名…

2025中国力学大会AI+分享 | 四川大学张来平研究员:基于图神经网络的流场预测方法研究进展

作者简介:张来平,博士,原军科院创新研究院研究员。长期从事计算流体力学研究,主要研究领域包括:复杂外形网格生成技术、非结构网格高精度计算方法、高性能计算、大型CAE工业软件研发及在航空航天中的应用等。近年来专注…

GESP认证C++编程真题解析 | P11964 [GESP202503 七级] 图上移动

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

博士答辩PPT分享 | 高雷诺数湍流场数据同化与湍流模型机器学习研究

个人简介:孙旭翔,西北工业大学航空学院2019级流体力学专业博士生,研究方向为数据同化与数据驱动湍流建模。在Machine Learning-Science and Technology、Journal of Computational Science、Computers & Fluids发表SCI论文三篇。论文题目…

校友会2026年中国财经类大学排名,上海财经大学、西安欧亚学院、广东工商职业技术大学、浙江金融职业学院第一

为了给2026年全国高考考生报考中国财经类高校提供参考指南,2026年1月12日,全国第三方大学评价机构艾瑞深校友会网(Cuaa.net)撰写完成、科学出版社即将出版的《2026校友会中国大学排名:高考志愿填报指南》最新发布校友会2026中国财经类大学排名…

GESP认证C++编程真题解析 | P11965 [GESP202503 七级] 等价消除

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

视频技术在现代社会中的应用与发展

视频技术在现代社会中的应用与发展 引言 随着科技的飞速发展,视频技术已经成为现代生活中不可或缺的一部分。从日常娱乐到工作沟通,视频技术在各个方面都扮演着重要角色。本文将探讨视频技术的基本概念、应用领域、发展现状以及未来趋势。 一、视频技术的基本概念 1.1 视…

校友会2026年天津市大学排名,南开大学、天津仁爱学院、天津职业大学、天津轻工职业技术学院第一

为了给2026年全国高考考生报考天津市高校提供参考指南,2026年1月12日,全国第三方大学评价机构艾瑞深校友会网(Cuaa.net)撰写完成、科学出版社即将出版的《2026校友会中国大学排名:高考志愿填报指南》最新发布校友会2026天津市大学排名。北京大…

有哪些SRM系统是专门为供应链管理设计的? - 企业数字化观察家

众所周知,供应链管理已经成为企业降本增效、提升协同效率和增强抗风险能力的核心环节,而 SRM(供应商关系管理)系统,正是企业在供应链管理过程中,用来规范供应商协作、控制采购风险、提升整体效率的重要工具。 但…

实用指南:java基础-LinkedList(链表)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

计算机毕业设计Django+Vue.js高考推荐系统 高考分数线预测 大数据毕设(源码+LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 技术范围:Sprin…

二分搜索树深度优先遍历

二分搜索树深度优先遍历 引言 二分搜索树(Binary Search Tree,BST)是一种特殊的树形数据结构,其特点是每个节点都有一个键值,左子节点的键值小于其父节点的键值,右子节点的键值大于其父节点的键值。深度优先…

互联网大厂Java小白求职面试全解析:从Spring到微服务与大数据

场景:求职者超好吃的面试 超好吃是一名刚毕业的Java程序员,今天他来到一家互联网大厂进行面试,面试官态度严肃,但也愿意指导初学者。以下是他们的对话内容:第一轮提问:Spring框架与基础Java 面试官&#xf…

RS485

#ifndef __RS485_H #define __RS485_H #include "sys.h"#include "stdio.h" #define SLAVE_ADDR 0x01 #define RX_BUF_SIZE 64 #define RS485_TX_EN() GPIO_SetBits(GPIOB, GPIO_Pin_7)…

Eclipse 重启选项详解

Eclipse 重启选项详解 引言 Eclipse,作为Java开发中广泛使用的集成开发环境(IDE),其稳定性和功能性一直备受开发者青睐。在Eclipse的使用过程中,重启选项是一个常见的操作,它可能涉及到工作空间的恢复、插件的重启等多种场景。本文将详细介绍Eclipse的重启选项及其相关…

基于VUE的高校发展学生党员管理系统[VUE]-计算机毕业设计源码+LW文档

摘要:随着高校学生党员数量的增加,传统的管理方式已难以满足发展学生党员工作的需求。本文旨在设计并实现一个基于VUE框架的高校发展学生党员管理系统,以提高管理效率和信息化水平。通过对系统进行详细的需求分析,明确了系统的功能…

2026年深圳热门的GEO全场景推广解决方案推荐,哪家公司靠谱? - 工业品牌热点

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家GEO推广领域标杆企业,为ToB企业选型提供客观依据,助力精准匹配适配的智能营销服务伙伴。 TOP1 推荐:南方网通 推荐指数:★★★★★ | 口碑评分:国内GEO全…

RDF 规则:构建语义网的基础

RDF 规则:构建语义网的基础 引言 资源描述框架(Resource Description Framework,简称 RDF)是一种用于描述网络资源的语义数据模型。它为数据提供了一个结构化的表示方法,使得数据可以更加灵活、方便地被交换和重用。RD…