MySQL是怎样运行的

小孩子4919

出版时间

2020-11-01

ISBN

9787115547057

评分

★★★★★

标签

编程

书籍介绍

《MySQL是怎样运行的:从根儿上理解 MySQL》采用诙谐幽默的表达方式,对MySQL的底层运行原理进行了介绍,内容涵盖了使用MySQL的同学在求职面试和工作中常见的一些核心概念。

《MySQL是怎样运行的:从根儿上理解 MySQL》总计22 章,划分为4个部分。第1部分介绍了MySQL入门的一些知识,比如MySQL的服务器程序和客户端程序有哪些、MySQL的启动选项和系统变量,以及使用的字符集等。第2部分是本书后续章节的基础,介绍了MySQL的一些基础知识,比如记录、页面、索引、表空间的结构和用法等。第3部分则与大家在工作中经常遇到的查询优化问题紧密相关,介绍了单表查询、连接查询的执行原理,MySQL基于成本和规则的优化具体指什么,并详细分析了Explain语句的执行结果。第4部分则是与MySQL中的事务和锁相关,介绍了事务概念的来源,MySQL是如何实现事务的,包括redo日志、undo日志、MVCC、各种锁的细节等。

尽管《MySQL是怎样运行的:从根儿上理解 MySQL》在写作时参考的MySQL源代码版本是5.7.22,但是大部分内容与具体的版本号并没有多大关系。无论是很早之前就已身居MySQL专家的人员,还是希望进一步提升技能的DBA,甚至是三五年后才会入行的“萌新”,本书都是他们彻底了解MySQL运行原理的优秀图书。

AI导读
核心看点
  • 诙谐幽默解读MySQL底层原理
  • 涵盖索引、事务、锁等核心概念
  • 从源码角度剖析InnoDB运行机制
适合谁读
  • 希望深入理解MySQL原理的开发者
  • 准备数据库相关技术面试的求职者
  • 有一定基础想进阶的DBA或后端
读前提醒
  • 需具备计算机基础及MySQL使用经验
  • 建议重点阅读字符集与索引章节
  • 内容较深,适合精读而非快速浏览
读者共识
  • 国内MySQL书籍中的良心之作
  • 循序渐进,比官方文档更易读懂
  • 细节丰富,部分读者嫌过于细碎

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "utf8mb3:“割”过的UTF-8字符集,只使用1~3字节表示字符 ut8mb4:正宗的UTF-8字符集,使用1~4字节表示字符。 有一点需要注意:在 MYSQL中,u8是 utmb3的别名,所以后文在 MYSQL中提到u8时,就意味着使用1~3字节来表示一个字符。如果大家有使用4字节编码一个字符的情況,比如存储一些 emoji表情,请使用utf8mb4。"
  • "LC ALL、 LC CTYPE、LANG这3个环境变量的值决定了操作系统当前使用的是哪种字符集。其中, LC ALL的优先级比 LC CTYPE高, LC CTYPE的优先级比LANG高。也就是说,如果设置了LCAL,则无论是否设置了 LC CTYPE或者LANG。最终都以LCAL为准:如果没有设置 LC ALL,就以 LC CTYPE为准;如果既没有设置 LC ALL也没有设置 LC CTYPE,就以LANG为准"
  • "INNODB采取的方式是,将数划分为若于个页,以页作为磁盘和内在之间交互的基本单位 。INNODB中页的大小为16KB。也就是在一般次最少从磁盘中读取16KB的内到内在中一次最少把内中的16KB内容刷新到磁盘中。"
  • "这里需要提一下 INNODB表的主键生成策略:优先使用用户自定义的主键作为主键:如果用户没有定义主键,则选取一个不允许存储NUL值的 UNIQUE键作为主键:如果表中连不允许存備NUL值的 UNIQUE键都没有定义,则 INNODB会为表默认添加一个名为row id 的隐藏列作为主键。"
  • "是的,设计 INNODB的大叔对每个分组中的记录条数是有规定的:对于 Infimum记录所在的分组只能有1条记录, Supremum记录所在的分组拥有的记录条数只能在1~8条之间,剩下的分组中记录的条数范围只能是在4~8条之间。"
作者简介
为什么这个SQL语句执行得这么慢?为什么我明明建立了索引,但是查询计划显示没用?为什么IN查询中的参数一多就不使用索引了?为什么我的数据显示成了乱码?……每一位DBA和后端开发人员在与MySQL打交道时,或多或少都会遇到这些问题。之外,索引结构、MVCC、隔离级别的实现、锁的使用等知识,也是求职人员在MySQL面试中躲不过去的高频问题。 本书采用诙谐幽默、通俗易懂的写作风格,针对上面这些问题给出了相应的解答方案。尽管本书的表达方式与司空见惯的学术派、理论派IT图书有显著区别,但本书的确是相当正经的专业技术图书,内容涵盖了使用MySQL的同学在求职面试和工作中常见的一些核心概念。无论是身居MySQL专家身份的技术人员,还是技术有待进一步提升的DBA,甚至是刚投身于数据库行业的“萌新”人员,本书都是他们彻底了解MySQL运行原理的优秀图书。
目录
第0章 楔子——阅读前必看 1
第1章 装作自己是个小白——初识MySQL 3
1.1 MySQL的客户端/服务器架构 3
1.2 MySQL的安装 3
1.3 启动MySQL服务器程序 5

显示全部
用户评论
最早是在byr bbs上见到作者在写mysql的文章,后来在掘金上发布了小册,29.9,是我这么多年来花的最值得一次
作者真的是很用心设计本书的章节顺序,从现有场景引出可能出现的问题再到解决方案设计,循序渐进的揭开mysql 的内部实现细节,每一章的知识就是那么水到渠成,这不是讲解而是在设计。国内技术书籍都有这样的态度,那一定会崛起技术上的颠覆。作者真棒,给你赞!!
对我这个小白真的太友好了!!看了索引那几章之后,简直就是推开新世界的大门啊🤩
作者超级用心,很清晰的实现方式分析,比源码好读得多,强烈推荐。 这本书勾起了我读csapp的感觉,我觉得如果是英文的话应该也会好评,可惜我不会做这个翻译…
只想把这本书藏起来,在我背诵全文之前,不能让更多人发现它。不过,怎么一点也没有集群呢,等更。
要是学每个技术都有这样一本书就好了😁
概念堆砌,作者组织刷好评
从掘金小册扩充来的书,其实两份都买了。整体内容还行,在国产作者里算良心的了。就是太口语化了,导致大部分章节太啰嗦了。而且很多描述很绕,明明一两句话简单直接说明就好了的,硬是为了“好读”绕来绕去。
由浅入深,从最简单的细节开始层层递进,讲了很多设计上的决策和思考。真的从根上理解MySQL了,是我看过最好的MySQL原理书籍,强烈推荐。
讲得非常细致,对深入了解 InnoDB 还是很有帮助的
下载
收藏