MySQL是怎样运行的:从根儿上理解 MySQL PDF 清晰版

  • 更新时间:
  • 9313人关注
  • 点击下载

给大家带来的一篇关于MySQL相关的电子书资源,介绍了关于MySQL、MySQL运行方面的内容,我们还提供了样章在线阅读,本书是由人民邮电出版社出版,格式为PDF,资源大小119 MB,小孩子4919编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.4分。

资源详情相关推荐
MySQL是怎样运行的:从根儿上理解 MySQL
  • 出版社:人民邮电出版社
  • 作者:小孩子4919
  • 大小:119 MB
  • 类别:MySQL
  • 热度:497
  • PHP+MySQL动态网站开发从入门到精通
  • PHP和MySQL Web开发(第5版)
  • MySQL技术内幕
  • 高可用MySQL(第2版)
  • PHP、MySQL与JavaScript学习手册(第4版)
  • 书籍介绍

    深入剖析MySQL数据库运行机制的优秀读物!

    更好、更快地帮助读者掌握MySQL专业技术知识!

    1.采用诙谐幽默的表达方式,全文采用大白话写成;
    2.作者画了200多幅图辅助讲解重点、细节内容,提供书中彩图文件下载;
    3.尊重用户体验:尝试根据用户认知顺序,使用更人性化的语言去解释看似很复杂的技术问题;
    4.层层铺垫的结构划分:本书覆盖的内容形成了一个闭环,看完本书希望读者能有一种看完整个故事的感觉;
    5.提供方便的答疑渠道:读者在学习过程中遇到的疑惑可以很快得到解答;
    6.尽管本书在写作时参考的MySQL源码版本是5.7.22,但是书中大部分知识与具体的MySQL版本并没有太大关系。偶有几处与特定版本相关的地方,本书也进行了明确强调;
    7.双色印刷。

    为什么这个SQL语句执行得这么慢?为什么我明明建立了索引,但是查询计划显示没用?为什么IN查询中的参数一多就不使用索引了?为什么我的数据显示成了乱码?……每一位DBA和后端开发人员在与MySQL打交道时,或多或少都会遇到这些问题。之外,索引结构、MVCC、隔离级别的实现、锁的使用等知识,也是求职人员在MySQL面试中躲不过去的高频问题。

    本书针对上面这些问题给出了相应的解答方案。本书的表达方式与司空见惯的学术派、理论派IT图书有显著区别,但也是相当正经的专业技术图书,内容涵盖了使用MySQL的同学在求职面试和工作中常见的一些核心概念。无论是身居MySQL专家身份的技术人员,还是技术有待进一步提升的DBA,甚至是刚投身于数据库行业的“萌新”人员,本书都是他们彻底了解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运行原理的优秀图书。

    目录

    • 第0章 楔子——阅读前必看 1
    • 第 1章 装作自己是个小白——初识MySQL 3
    • 第 2章 MySQL的调控按钮——启动选项和系统变量 19
    • 第3章 字符集和比较规则 34
    • 第4章 从一条记录说起——InnoDB记录存储结构 55
    • 第5章 盛放记录的大盒子——InnoDB数据页结构 72
    • 第6章 快速查询的秘籍——B 树索引 90
    • 第7章 B 树索引的使用 107
    • 第8章 数据的家——MySQL的数据目录 132
    • 第9章 存放页面的大池子——InnoDB的表空间 140
    • 第 10章 条条大路通罗马——单表访问方法 166
    • 第 11章 两个表的亲密接触——连接的原理 178
    • 第 12章 谁最便宜就选谁——基于成本的优化 190
    • 第 13章 兵马未动,粮草先行——InnoDB统计数据是如何收集的 210
    • 第 14章 基于规则的优化(内含子查询优化二三事) 220
    • 第 15章 查询优化的百科全书——EXPLAIN详解 245
    • 第 16章 神兵利器——optimizer trace的神奇功效 270
    • 第 17章 调节磁盘和CPU的矛盾——InnoDB的Buffer Pool 278
    • 第 18章 从猫爷借钱说起——事务简介 294
    • 第 19章 说过的话就一定要做到——redo日志 308
    • 第 20章 后悔了怎么办——undo日志 342
    • 第 21章 一条记录的多副面孔——事务隔离级别和MVCC 379
    • 第 22章 工作面试老大难——锁 401
    • 参考资料 455
    精选笔记:MySQL数据库远程连接很慢的解决方案

    21小时11分钟前回答

    有次同事提出开发使用的MySQL数据库连接很慢,因为我们的MySQL开发数据库是单独一台机器部署的,所以认为可能是网络连接问题导致的。

    在进行 ping和route后发现网络通信都是正常的,而且在MySQL机器上进行本地连接发现是很快的,所以网络问题基本上被排除了。以前也遇到过一次这样的问题,可后来就不知怎么突然好了,这次又遭遇这样的问题,所以想看看是不是MySQL的配置问题。在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL的配置文件中增加如下配置参数:

    [mysqld]
    
    skip-name-resolve
    
    

    在Linux下配置文件是/etc/my.cnf,在windows下配置文件是MySQL安装目录下的my.ini文件。注意该配置是加在 [mysqld]下面,在更改配置并保存后,然后重启mysql并远程连接测试,一切恢复如初。该参数的官方解释信息如下:

    复制代码 代码如下:
    How MySQL uses DNS

    When a new thread connects to mysqld, mysqld will spawn a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call gethostbyaddr_r() and gethostbyname_r() to resolve the hostname.

    If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call gethostbyaddr() and gethostbyname() instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready.

    You can disable DNS host lookup by starting mysqld with –skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.

    If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with –skip-name-resolve or by increasing the HOST_CACHE_SIZE define (default: 128) and recompile mysqld.

    You can disable the hostname cache with –skip-host-cache. You can clear the hostname cache with FLUSH HOSTS or mysqladmin flush-hosts.

    If you don't want to allow connections over TCP/IP, you can do this by starting mysqld with –skip-networking.

    根据文档说明,如果你的mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢,由于我们的开发机器是不能够连接外网的,所以DNS解析是不可能完成的,从而也就明白了为什么连接那么慢了。同时, 请注意在增加该配置参数后,mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了 ,因为这是禁止了域名解析的结果。

    资源下载

    相关声明:

    《MySQL是怎样运行的:从根儿上理解 MySQL 》PDF 清晰版下载资源由用户 咸清茹 于 2021-10-02 22:01:10 分享至百度网盘。仅供想学习MySQL的网友交流使用,专题参考:MySQLMySQL运行,MySQL,

    相关资源

    • MySQL王者晋级之路

      MySQL王者晋级之路

      本书深入剖析MySQL数据库体系结构,实战演练备份恢复、主从复制,详解高可用集群架构的设计与实践过程,详细梳理优化思路,展现新版本的特性,并与真实生产案例相结合,通过核心原理到“王者”实战,全面覆盖MySQL数据库的知识点

      大小:76.5 MBMySQL数据库

      立即下载
    • Effective MySQL之备份与恢复

      Effective MySQL之备份与恢复

      mysql资深专家ronald bradford撰写的精品书籍《effective mysql之备份与恢复》涵盖了所有能够确保开发合理备份和恢复计划的选项,并对各选项做了详细说明,给出了语法示例。本书对照讲解不同的备

      大小:72.4 MBMySQL

      立即下载
    • Centos7下安装mysql5.7的步骤

      一、安裝YUMRepo 1、因为CentOS的yum源中沒有mysql,必须到mysql的安卓下载yumrepo配置文件。 2、随后开展repo的安裝: rpm-ivhmysql57-community-release-el7-9.noarch.rpm 实行进行之后在/etc/yum.repos.d/文件目录下转化成2个repo文档mysql-community.repo mysql-community-source.repo 二、应用yum指令就可以进行安裝 留意:务必进到到/etc/yum.repos

      大小:0.16 MBCentos7

      立即下载
    • MySQL语句笔记

      大小:1.9 MBMySQL笔记

      立即下载
    • MySQL与MariaDB学习指南

      MySQL与MariaDB学习指南

      MySQL与MariaDB学习指南 使读者不仅能够深入了解MySQL这种主流数据库,还能全面掌握作为开源数据库新秀的MariaDB的使用方法。书中内容由浅至深、层层深入,从分步介绍如何安装MySQL和MariaDB,到

      大小:68.9 MB数据库

      立即下载
    • MySQL运维内参

      MySQL运维内参

      《MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践》是一本介绍MySQL数据库知识的专业书籍,从核心原理到最佳实践,深入浅出、抽丝剥茧地进行讲解,不仅从源码和运维两个角度介绍

      大小:162 MBMySQL

      立即下载

    学习笔记

    14小时17分钟前回答

    MySQL数据库分区功能的使用教程

    零,什么是数据库分区 来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下……

    15小时15分钟前回答

    MySQL Order By索引优化方法

    尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。 使用索引的MySQL Order By 下列的几个查询都会使用索引来解决 ORDER BY 或 GROUP BY 部分: SELECT * FROM t1 ORDER BY key_part1,key_part2,... ; SELECT * FROM t1 WHERE key_part1=constant ORDER BY key_part2; SELECT * FROM t1 WHERE key_part1=constant GROUP BY key_part2; SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 DESC; SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC, key_part2 DESC; 不使用索引的MySQL Order By 在另一些情况下,MySQL无法使用索引来满足 ORDER BY,尽管它会使用索引来找到记录来匹配 WHERE 子句。这些情况如下: * 对不……