MySQL 是怎样运行的:从根儿上理解 MySQL

MySQL 是怎样运行的:从根儿上理解 MySQL(下).pdf 立即下载

640?wx_fmt=png

MySQL 是怎样运行的:从根儿上理解 MySQL

小孩子 著

12 小时 · 25 小节 

从根儿上理解 MySQL,让 MySQL 不再是一个黑盒

小册内容

640?wx_fmt=jpeg

小册介绍

MySQL凭借着它还不错的性能、还不错的稳定性常年稳居老二宝座,当然最大的优势就是它不要钱,还开源,这让它成为大部分中小型公司,尤其是互联网公司首选的数据库(近年来越来越多的大公司也在尝试将业务转移到这种不要钱的数据库上来)。

越来越多的DBA和后端同学在工作中少不了和MySQL打交道,为什么这个SQL执行的这么慢?为什么明明我建了索引但查询计划显示没用?为什么我的IN查询里的参数一多就不使用索引了?为什么突然我的数据就成了乱码?到底应不应该使用连接查询?吧啦吧啦一大堆。在面试中MySQL的一些知识更成为躲不过的问题,比如索引结构、MVCC、隔离级别的实现、锁的使用等等等等都成为了面试考题重灾区。

其实对于工程技术人员来说,大部分接触的所谓技术是没那么需要智商的,只是需要讲解这些技术的同学稍微切换一个角度,切换到小白的角度而不是站在一个上帝视角去讲述问题,那些看起来非常高深复杂的问题其实都是为了一个非常简单的初衷而不得不采用的设计。我的任务就是带着大家从非常简单的问题出发,在解决问题的路上我们会遇到一些麻烦,由这些麻烦我们会很自然的引入一些新的概念,我会不断的向大家强化这些新概念,当我确保大家已经完全掌握了这些新概念后,会基于这些新概念再引入一些更为复杂的问题。高楼大厦虽然雄伟,解构之后不过是钢筋水泥。当然这个过程我会适当的给大家加点儿料,扯扯犊子,让大家像读小说一样接受这些MySQL的核心概念。

小册的套路

我们相信,只要向大家有节奏的展示足够多的技术细节,那么整个学习过程将会变得流畅平滑,MySQL的面纱也会慢慢的被摘下。所以我们在后续介绍MySQL运行过程中需要用到的各种结构时会尽力向大家解释清楚每个字节都是干嘛用的,某几部分组合起来会有什么样的效果等等。

对于一些比较复杂的概念时,我们不准备使用概念先行方式进行讲解,也就是先给大家提出一个概念,然后介绍这个概念有什么什么属性,每个属性又有什么什么特点,每个特点又有什么什么的用法。我们在解释比较复杂的问题时会按照下边的套路出发:

  • 我们遇到了什么问题;

  • 为了解决问题提出了什么概念;

  • 这个概念在MySQL中又有哪些需要注意的地方。

也就是:不先讲是什么,先讲为什么。

覆盖的内容

本小册致力于覆盖大家工作和面试过程中最常遇到的MySQL的一些核心概念,共划分为4个部分,各部分简介如下:

640?wx_fmt=jpeg

有时候使用语言表述一个东西太抽象,一图胜千言,所以我们在各种可能让大家迷糊的地方画了各种对应的图示,整个小册用到的图片有上百张之多(其实我背地里画了 200 多张图片),象征性的贴几张:

全是图

  • Compact行格式示意图:

    640?wx_fmt=other
  • 表空间结构示意图:

    640?wx_fmt=other
  • 单表查询中根据二级索引访问的示意图:

    640?wx_fmt=other

作者介绍

640?wx_fmt=png

小孩子:前在线教育公司「跟谁学」后端工程师,公众号「我们都是小青蛙」作者,喜欢研究源码,觉得把复杂的问题讲清楚是一件很牛逼的事儿。

你会学到什么?

  • MySQL 的一些基本概念;

  • 如何处理使用 MySQL 过程中的乱码问题;

  • 从根儿上理解 InnoDB 存储引擎是如何存储记录、数据页,以及由页作为节点组成的B+树索引的原理;

  • 理解 InnoDB 存储引擎的表空间概念,知道 InnoDB 是如何管理段、区、页这些玩意儿以及 InnoDB 的数据字典;

  • 理解 MySQL 是如何执行单表查询、如何执行连接查询;

  • 理解 MySQL 基于代价的优化和基于规则的优化到底是啥意思;

  • 知道如何查看自己写的查询语句是好是坏,学会使用optimizer tracer;

  • 理解为什么需要事务以及它的基本概念;

  • redo 和 undo 日志的作用以及在 MySQL 中这些日志的细节;

  • 理解并发带来的各种问题以及 MySQL 中使用锁的各种细节;

  • 理解学习的快乐,希望各位看完本小册就像是读完一本小说一样畅快淋漓。

适宜人群

  1. 刚刚学完 SQL 基础的学生同学们;

  2. 被数据库问题折磨的求职者们;

  3. 天天被 DBA 逼着优化 SQL 的业务开发小伙伴;

  4. 菜鸟 DBA 和不是非常菜的 DBA 小伙伴;

  5. 对 MySQL 内核有强烈兴趣但看源码一脸懵逼的小伙伴。

名人推荐

640?wx_fmt=png

八折优惠

640?wx_fmt=jpeg

扫不上码,可以点击左下角「阅读原文」

MySQL是怎样运行的(仅限学习使用) 立即下载

相关推荐

从根儿上理解MySQL.pdf

从根儿上理解MySQL.pdf

《Mysql是怎样运行的》

mysql安装、系统变量、字符集和比较规则、InnoDB、B+树索引、数据目录、表空间、连接原理、成本优化、sql优化、explain使用、事务

qq_35572013的博客 5106

sap2000 api matlab,SAP2000_API入门指南.pdf

SAP2000_API入门指南北 京 金 土 木 软 件 技 术 有 限 公 司Beijing Civil King Software TechnologyCo., Ltd.SAP2000 API 入门指南余承飞 韦群跃 汤娣概述SAP2000 API 是从 SAP2000 V11 开始引进的,即应用软件编程接口。用户可以编写程序,通过API 随心所欲地调用 SAP2000...

weixin_42118423的博客 1943

MySQL是怎样运行的:从根儿上理解MySQL | undo日志(上)

文章目录前言:本博文是对MySQL是怎样运行的:从根儿上理解MySQL这本书的归纳和总结22.后悔了怎么办-undo日志(上)22.1 事务回滚的需求 前言:本博文是对MySQL是怎样运行的:从根儿上理解MySQL这本书的归纳和总结 22.后悔了怎么办-undo日志(上) 22.1 事务回滚的需求 概述 事务是需要保证原子性的,也就是要么成功要么失败没有中间态,所以出现中途失败没有保证原子性的情况比如: 事务执行过程中可能遇到各种错误,比如服务器本身的错误,操作系统错误,甚至是突然断电导致的错误。

光看不点赞的博客 2570

THB6128步进电机驱动芯片介绍

THB6128芯片也称为步进电机驱动芯片,采用BiCDMOS工艺,IC管脚间距为1mm的小型MFP30KR封装而成。

weichen_78的博客 7182

cocos creator接入微信登陆sdk ios篇

cocos creator接入微信登陆sdk ios篇 背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇 步骤 去微信开放平台下载ios平台所需要的sdk 在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id 在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin 将SDK文件中...

凤小鹿的博客 6363

MySQL 是怎样运行的:从根儿上理解 MySQL(下)

MySQL 是怎样运行的:从根儿上理解 MySQL(下) 【下载地址】MySQL是怎样运行的从根儿上理解MySQL下 《MySQL 是怎样运行的:从根儿上理解 MySQL(下)》是一份深入浅出的学习资料,帮助读者全面理解 MySQL 数据库的内部工作原理。内容涵盖存储引擎、索引原理与优化、SQL 语句执行过程、事务与锁的...

gitblog_06749的博客 472

磁带库Scalar i6000界面基本操作步骤

(注:磁带库的前面的门不要打开,日常维护:主要就是简单看下磁带库的状态;绿色代表正常;黄色代表报警但不影响磁带库正常使用;红色代表报警,不能正常使用,及时和厂家联系报修。) 一、磁带库管理页面 1、首先,磁带库前面(具体作用如图) 2、查看状态和管理页面 3、管理页面登陆。用户名:service 密码:xxxxxx 4、磁带机背面 二、电脑连接磁带库进入管理页面 1.用网线把电脑和磁带库的维护接口(磁带库背面)进行连接 2.电脑环境:JAVA。把电脑的IP设置成自...

杀神lwz的博客 5359

MySQL 是怎样运行的:从根儿上理解 MySQL(上)

MySQL 是怎样运行的:从根儿上理解 MySQL(上) 【下载地址】MySQL是怎样运行的从根儿上理解MySQL上 《MySQL 是怎样运行的:从根儿上理解 MySQL(上)》是一份深入浅出的教程,全面剖析了MySQL数据库的运行原理。本教程以通俗易懂的语言,帮助读者从源头理解MySQL,为之后的学习和实践打下坚实基础...

gitblog_06708的博客 479

智能车数字图像处理算法入门及C语言实现

智能车图像的最最基本入门算法介绍及C语言实现,二值化 - 特征识别 - 补线 - 中心巡线 - 偏差曲率计算。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 5112

AMDGPU驱动中Doorbell与Event机制简要对比

摘要:AMDGpu驱动中,Doorbell和Event是两种异步通知机制。Doorbell是CPU→GPU的单向硬件通知,通过写MMIO寄存器触发GPU拉取任务,延迟低且无需内核介入,适用于队列任务提交。Event是GPU→CPU的双向同步通知,基于中断和内核事件对象,支持阻塞等待,用于任务完成或异常上报。核心区别在于方向、用途和实现方式:Doorbell侧重任务触发,Event侧重状态反馈。两者配合实现高效的任务下发与完成通知流程。

图形/计算GPU的驱动与虚拟化技术分享园地 1862

MySQL是怎样运行的从根儿上理解MySQL下:深入掌握数据库核心奥秘

MySQL是怎样运行的从根儿上理解MySQL下:深入掌握数据库核心奥秘 【下载地址】MySQL是怎样运行的从根儿上理解MySQL下 《MySQL 是怎样运行的:从根儿上理解 MySQL(下)》是一份深入浅出的学习资料,帮助读者全面理解 MySQL 数据库的内部工作原理。内容涵盖存储引擎、索引原理与优化、SQL 语句执行过...

gitblog_06713的博客 435

Python全栈入门到实战【基础篇 19】函数进阶:默认参数、递归函数与偏函数应用

本文深入探讨Python函数进阶的三大核心知识:默认参数、递归函数与偏函数。针对默认参数,揭示了可变对象作为默认值的陷阱,提出使用None替代的方案;解析递归函数的三大要素(终止条件、递归调用、问题拆解),并通过阶乘和斐波那契数列示例演示实现方法,同时给出尾递归和缓存装饰器两种优化策略;最后介绍偏函数如何通过functools.partial固化参数简化调用。这些技巧能显著提升函数在复杂场景下的灵活性与复用性,帮助开发者编写更高效的Python代码。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3865

【亲测免费】 《MySQL是怎样运行的:从根儿上理解MySQL》PDF下载

《MySQL是怎样运行的:从根儿上理解MySQL》PDF下载 【下载地址】MySQL是怎样运行的从根儿上理解MySQLPDF下载 《MySQL是怎样运行的:从根儿上理解MySQL》是一本深入解析MySQL数据库内部机制的书籍,适合希望从底层原理到实际应用全面掌握MySQL的读者。本书详细介绍了MySQL的架构设计、存储引...

gitblog_06714的博客 1388

手把手教你学SOME/IP「3.2.1.发布/订阅行为」

本文详细介绍了SOME/IP协议中的服务发现机制,重点解析了发布/订阅行为的流程。主要内容包括:1)服务发布与Method通信流程,涵盖find/offer报文交互、TTL保活机制及异常处理;2)服务订阅与Event通信流程,包括subscribe/ack报文交互和组播延迟机制;3)特殊场景如快速发送、半周期回复、重置订阅等机制。通过邮局订阅报纸的类比,帮助理解服务发现的核心原理,并强调流程图对于问题定位的重要性。文章为SOME/IP协议的工程实现提供了实用指导。

nihaoljq2010的博客 1223

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL是怎样运行的:从根儿上理解MySQL | 锁

文章目录前言:本博文是对MySQL是怎样运行的:从根儿上理解MySQL这本书的归纳和总结第25章 工作面试老大难-锁1.解决并发事务带来问题的两种基本方式1.1 并发事务访问相同记录的情况的三种情况 前言:本博文是对MySQL是怎样运行的:从根儿上理解MySQL这本书的归纳和总结 第25章 工作面试老大难-锁 1.解决并发事务带来问题的两种基本方式 1.1 并发事务访问相同记录的情况的三种情况 ...

光看不点赞的博客 5969

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《MySQL 是怎样运行的:从根儿上理解 MySQL》笔记

重新认识MySQL 前面主要是一些安装使用MySQL的过程,没必要记笔记 客户端与服务器连接过程,MySQL支持一下三种客户端进程与服务端进程通讯方式: TCP/IP 命名管道和共享内存(Windows操作系统中的两种进程间通信方式) Unix域套接字文件 服务器处理客户端请求过程 连接管理 服务器进程会为每个连接进来的客户端分配一个线程......

特仑苏大碗茶 5168

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

转:MySQL 是怎样运行的:从根儿上理解 MySQL

转:MySQL 是怎样运行的:从根儿上理解 MySQL

baidu_37307156的博客 9181

「MySQL是怎样运行的:从根儿上理解MySQL.rar」,点击链接即可保存。

MySQL是怎样运行的:从根儿上理解MySQL.rar」,点击链接即可保存。链接:https://pan.quark.cn/s/0784137aed53。

狼魂之力 707

MySQL是怎样运行的:从根儿上理解MySQL|MySql事务简介

19.从猫爷被杀说起-事务简介 1.事务的起源 这里书中讲述的十分生动有趣,大家可自行下载pdf查阅理解;总结来说所谓事务就是:让某些数据库操作符合现实世界中状态转换的规则 1.1 原子性(Atomicity) 概述 现实世界中转账操作是一个不可分割的操作,也就是说要么压根儿就没转,要么转账成功,不能存在中间的状态,也就是转了一半的这种情况。设计数据库的大叔们把这种要么全做,要么全不做的规则称之为 原子性,但麻烦就麻烦在现实生活中一步的操作要在数据库分为好几步来实现,其中一环断开则会引发意想不到的

光看不点赞的博客 3316

MySQL 是怎样运行的:从根儿上理解 MySQL——简笔

MySQL的调控按钮 —— 启动选项和系统变量 乱码的前世今生 —— 字符集和比较规则 从一条记录说起—— InnoDB 记录结构 盛放记录的大盒子 —— InnoDB 数据页结构 快速查询的秘籍 —— B+ 树索引 好东西也得先学会怎么用 —— B+ 树索引的使用 数据的家 —— MySQL 的数据目录 存放页面的大池子 —— InnoDB 的表空间 条条大路通罗马 —— ...

温一杯酒的博客 1428

《MySQL是怎么运行的:从根儿上理解MySQL》——InnoDB存储引擎

声明:本博客纯粹为读书笔记,如要详细了解MySQL相关知识请访问《MySQL是怎么运行的:从根儿上理解MySQL》原作者撰写资料 正文: InnoDB是MySQL的默认存储引擎 1)InnoDB是将数据从内存存储到磁盘上的 2)InoDB将数据从内存中刷新到磁盘中是以页为基本单位,一般为16K 3)InoDB目前有四种行格式:compact(简洁的)、redundant(冗余的)、dyn...

ignorewarnings的博客 1万+
上一篇: 轻量级 Web 框架 Gin 结构分析
下一篇: 一种简单易懂的 MyBatis 分库分表方案
码洞
博客等级 码龄10年 41粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值