MySQL 8 Cookbook(中文版)
  • 推荐0
  • 收藏8
  • 浏览3.5K

MySQL 8 Cookbook(中文版)

(美) 卡西克·阿皮加 特拉 (Karthik Appigatla) (作者)  周彦伟 , 孟治华 , 王学芳 (译者) 许艳 (责任编辑)

  • 书  号: 978-7-121-35010-8
  • 出版日期:2018-11-01
  • 页  数:448
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: MySQL 8
  • 原书号:9781788395809
  • 维护人:张春雨
MySQL 8.0 的发布是MySQL 发展历史上的一个重要里程碑,也是开源数据库领域内的一个大事件。针对这个版本,MySQL 官方团队做了太多的工作,从查询优化到集群架构,从参数调整到特性支持,MySQL 都有了革命性的变化。本书基于MySQL 8.0,以基础知识为入手点,以讲解技术特性为目标,以案例作为理论的补充,详细介绍了MySQL 的方方面面,提供了超过150 个高性能数据库查询与管理技巧,是MySQL 入门者和管理者的必读之作。
MySQL重磅升级|新版仅此一书 数据库国际大师原著|ACE级一线专家翻译
周彦伟,Oracle ACE Director(MySQL),中国计算机行业协会开源数据库专业委员会会长,中国MySQL用户组(ACMUG)主席,曾在去哪儿网、人人网等互联网公司工作多年,专注于MySQL数据库的技术和推广,著有《MySQL运维内参》,该书被业内从业者视为MySQL面试宝典。2018年创办极数云舟,提供MySQL技术产品和顾问服务。

孟治华,美国波士顿大学计算机专业硕士,拥有14年以上的数据库相关项目经验,曾多年在美国为Walmart、CVS Health等世界500强公司提供数据仓库和商业智能项目咨询服务。回国后积极参与ACMUG等知名开源社区活动,并致力于开源数据库知识的推广和传播。

王学芳,中国矿业大学(北京)计算机技术专业在读研究生,对数据库很感兴趣,一直关注MySQL社区的发展动态、技术革新等内容。
前言

MySQL是当下最流行和广泛使用的关系型数据库之一。最新发布的MySQL 8能够提供比以往版本更有效的高性能结果查询和更轻松的管理配置。
本书面向的读者
这本书适合的读者范围很广。对于使用过MySQL早期版本的MySQL数据库管理员和开发者,可以通过本书了解MySQL 8的新功能以及如何利用它们;对于那些有其他RDBMS(如Oracle、MSSQL、PostgreSQL和DB2)工作经验的读者,可以将本书作为学习MySQL 8的快速入门指南;对于初学者,可以将本书作为使用手册,参考书中内容找到问题的快速解决方案。
最重要的是,本书还可以让你做好应对生产环境问题的准备。读完本书后,你将有信心管理好拥有海量数据集的大型数据库服务器。
在我使用MySQL的10年中,我目睹了许多由于小错误导致的重大停机事故。本书涵盖了许多容易出错的场景,并用警告图标显著地标出。
阅读本书,初学者并不需要反复翻阅以理解概念。书中每个主题都提供了指向MySQL文档或其他资料的参考链接,读者可以通过参考链接来了解更多详细信息。
因为这本书也适合初学者,所以可能有一些你已经知道的方法。当你读到已熟知的内容时,可以跳过它们。
本书包括的内容
俗话说,熟能生巧。但是除了练习,你还需要一些基础知识和训练。本书可以在这些方面帮你进步。书中涵盖了大多数日常实际使用的场景。
第1章介绍如何在不同版本的Linux系统上安装MySQL 8,如何从以前的稳定版本升级到MySQL 8,以及如何从MySQL 8降级。
第2章介绍MySQL的基本用法,例如创建数据库和表;以各种方式插入、更新、删除和选择数据;将数据保存到不同的目的地;对结果进行排序和分组;多表联接;管理用户及其他数据库元素,如触发器、存储过程、函数和事件;以及获取元数据信息。
第3章介绍了MySQL 8新增的功能和内容,例如JSON数据类型、公用表表达式和窗口函数。
第4章介绍了如何配置MySQL,及其基本配置参数。
第5章解释了RDBMS的4个隔离级别,以及如何将MySQL用于事务。
第6章演示了如何启用二进制日志、各种格式的二进制日志,以及如何从二进制日志中检索数据。
第7章介绍了各种类型的备份方法,每种方法的优缺点,以及如何根据需求选择适用的方法。
第8章介绍了如何从各种备份中恢复数据。
第9章介绍了如何设置各种复制拓扑。具体介绍了将从服务器由主从复制切换到链式复制的方法,以及将从服务器从链式复制切换到主从复制的方法,相信这些方法能够引起读者的兴趣。
第10章介绍了克隆表,将助你成为管理大表的行家。这一章还介绍了第三方工具的安装和使用方法。
第11章将讲述如何调整、创建、复制和管理表空间。
第12章引导读者了解错误日志、一般查询、慢查询和二进制日志。
第13章详细解释了查询和schema调优,介绍了很多方法和技巧。
第14章着重于安全方面,详细介绍了如何安全安装、限定网络和用户、设置和重置密码等方法。
充分利用本书
如果你具备Linux系统的基础知识,那么你将能更轻松地理解本书内容。
约定惯例
本书使用了许多文本约定惯例。
CodeInText:这种字体表示文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟网址、用户输入和Twitter句柄。例如,MySQL依赖于libaio库。
如果我们想要提醒你注意命令行语句中的特定部分,会将相关行或项加粗,例如:
shell> sudo yum repolist all | grep mysql8
mysql80-community/x86_64 MySQL 8.0 Community Server
enabled: 16
mysql80-community-source MySQL 8.0 Community Server
disabled
命令行输入或输出的写法如下:
mysql> ALTER TABLE table_name REMOVE PARTITIONING;
黑体(中文)或粗体(英文):表示新词、重点词,或者在屏幕上显示的词。例如,菜单或对话框中的单词会使用黑体或粗体。举一个具体的例子:选择用于获取MySQL 8.0的开发版本选项卡,然后选择操作系统和版本。

这个图标表示警告或重要的注意事项。


这个图标表示技巧和诀窍。
标题
在这本书里,你会发现几个经常出现的标题。为了明确说明如何操作,各个标题的使用规则如下。
准备工作
这一部分将描述本节所包含的内容,并说明完成本节内容所需的软件或设置操作。
如何操作
这一部分包含完成本节内容需要遵循的步骤。
延伸阅读
这一部分包含与本节内容相关的其他信息,以便读者形成更完整的认知。
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/35010

目录

目录

第1章 安装或升级到MySQL 8 1
1.1 引言 1
1.2 使用YUM / APT安装MySQL 2
1.3 使用RPM或DEB文件安装MySQL 8.0 9
1.4 使用通用二进制文件在Linux系统上安装MySQL 12
1.5 启动或停止MySQL 8的运行 16
1.6 卸载MySQL 8 20
1.7 用systemd管理MySQL服务器 22
1.8 从MySQL 8.0降级 24
1.9 升级到MySQL 8.0 29
1.10 安装MySQL工具集 35
第2章 使用MySQL 37
2.1 引言 38
2.2 使用命令行客户端连接到MySQL 38
2.3 创建数据库 40
2.4 创建表 44
2.5 插入、更新和删除行 49
2.6 加载示例数据 52
2.7 查询数据 55
2.8 对结果排序 63
2.9 对结果分组(聚合函数) 64
2.10 创建用户 68
2.11 授予和撤销用户的访问权限 70
2.12 查询数据并保存到文件和表中 78
2.13 将数据加载到表中 81
2.14 表关联 82
2.15 存储过程 90
2.16 函数 95
2.17 触发器 98
2.18 视图 100
2.19 事件 102
2.20 获取有关数据库和表的信息 104
第3章 使用MySQL(进阶) 110
3.1 引言 110
3.2 使用JSON 110
3.3 公用表表达式(CTE) 116
3.4 生成列(generated column) 122
3.5 窗口函数 124
第4章 配置MySQL 129
4.1 引言 129
4.2 使用配置文件 130
4.3 使用全局变量和会话变量 131
4.4 在启动脚本中使用参数 132
4.5 配置参数 132
4.6 更改数据目录 135
第5章 事务 137
5.1 引言 137
5.2 执行事务 138
5.3 使用保存点 140
5.4 隔离级别 142
5.5 锁 147
第6章 二进制日志 153
6.1 引言 153
6.2 使用二进制日志 154
6.3 二进制日志的格式 159
6.4 从二进制日志中提取语句 161
6.5 忽略要写入二进制日志的数据库 173
6.6 迁移二进制日志 174
第7章 备份 177
7.1 引言 177
7.2 使用mysqldump进行备份 178
7.3 使用mysqlpump进行备份 182
7.4 使用mydumper进行备份 185
7.5 使用普通文件进行备份 191
7.6 使用XtraBackup进行备份 192
7.7 锁定实例进行备份 195
7.8 使用二进制日志进行备份 195
第8章 恢复数据 197
8.1 引言 197
8.2 从mysqldump和mysqlpump中恢复 197
8.3 使用myloader从mydumper中恢复 198
8.4 从普通文件备份中恢复 200
8.5 执行时间点恢复 201
第9章 复制 204
9.1 引言 204
9.2 准备复制 205
9.3 设置主主复制 212
9.4 设置多源复制 213
9.5 设置复制筛选器 220
9.6 将从库由主从复制切换到链式复制 222
9.7 将从库由链式复制切换到主从复制 227
9.8 设置延迟复制 231
9.9 设置GTID复制 234
9.10 设置半同步复制 238
第10章 表维护 243
10.1 引言 243
10.2 安装Percona工具包 244
10.3 修改表结构 246
10.4 在数据库之间移动表 248
10.5 使用在线模式更改工具修改表 250
10.6 归档表 255
10.7 克隆表 257
10.8 分区修剪和指定 269
10.9 管理分区 273
10.10 分区信息 276
10.11 有效地管理生存时间和软删除行 281
第11章 管理表空间 289
11.1 引言 289
11.2 更改InnoDB REDO日志文件的数量或大小 292
11.3 调整InnoDB系统的表空间大小 294
11.4 在数据目录之外创建独立表空间 298
11.5 将独立表空间复制到另一个实例 299
11.6 管理UNDO表空间 307
11.7 管理通用表空间 311
11.8 压缩InnoDB表 315
第12章 日志管理 320
12.1 引言 320
12.2 管理错误日志 320
12.3 管理通用查询日志和慢查询日志 328
12.4 管理二进制日志 335
第13章 性能调优 338
13.1 引言 338
13.2 explain计划 339
13.3 基准查询和服务器 345
13.4 添加索引 347
13.5 不可见索引 353
13.6 降序索引 355
13.7 使用pt-query-digest分析慢查询 358
13.8 优化数据类型 364
13.9 删除重复和冗余索引 366
13.10 检查索引的使用情况 374
13.11 控制查询优化器 375
13.12 使用索引提示(hint) 389
13.13 使用生成列为JSON建立索引 392
13.14 使用资源组 395
13.15 使用performance_schema 398
13.16 使用sys schema 405
第14章 安全 413
14.1 引言 413
14.2 安全安装 413
14.3 限定网络和用户 417
14.4 使用mysql_config_editor进行无密码认证 418
14.5 重置root密码 421
14.6 使用X509设置加密连接 425
14.7 设置SSL复制 428

本书勘误

印次
  • 页码:84-85  •  行数:84页最后一行到85页倒数第五行  •  印次: 3

    针对【查询每个部门的平均工资】的问题,书中答案错误。在这里给出我的代码。
    select dept_name, avg(salary) as avg_salary from salaries join dept_emp on salaries.emp_no=dept_emp.emp_no and salaries.from_date>=dept_emp.from_date and salaries.to_date<=adddate(date_format(adddate(dept_emp.to_date, interval 1 month), '%Y-%m-01'), interval -1 day) join departments as dept on dept_emp.dept_no=dept.dept_no group by dept.dept_no order by avg_salary desc;
    下面是查询结果:
    查询结果

    买个萝卜吃吧吃吧 提交于 2019/11/21 13:50:30
    张春雨 确认于 2020/3/23 13:54:49
  • 页码:XIII  •  行数:16  •  印次: 1

    原文:
    页面入口:http://www.broadview.com.cn/book/35010
    原链接地址已不存在,新的有效连接应为:
    页面入口:http://www.broadview.com.cn/book/5261

    严少安 提交于 2019/3/14 17:24:04
    张春雨 确认于 2019/4/11 16:01:51
  • 页码:34  •  行数:1  •  印次: 1

    原文:
    Mysql_upgrade检查所有数据库…
    应为:
    mysql_upgrade检查所有数据库…

    严少安 提交于 2019/3/14 17:45:20
    张春雨 确认于 2019/4/11 15:57:43
  • 页码:146  •  行数:19  •  印次: 1

    由于MVCC,返回了3行

    这里应该是返回“2”行。同理,该页第24行,返回的不是4行,应该是“3”行

    sky 提交于 2018/12/4 10:58:24
    张春雨 确认于 2019/4/12 10:46:20
  • 页码:247  •  行数:1  •  印次: 1
    严少安 提交于 2019/3/16 7:24:09
    张春雨 确认于 2019/4/11 15:52:42

读者评论

  • 天书!源代码?

    wp436507发表于 2020/12/17 8:39:24
  • 怎么没有原代码?

    wp436507发表于 2020/12/17 8:37:46
  • 本书没有提供源码下载吗?

    hitkoko发表于 2019/11/5 14:43:00
    • 博文视点的图书真差劲,居然没有提供源码下载

      hitkoko发表于 2019/11/5 14:44:06
  • 5.4.1 146页repeatable rad 最后一个例子 MVCC结果应该是2 和 3 ?

    paul发表于 2019/2/23 10:57:57

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

软件架构设计:大型网站技术架构与业务架构融合之道

余春龙 (作者)

本书系统化地阐述了技术架构与业务架构的方法论与实践。本书内容分为5大部分,第1部分从行业背景出发定义架构的概念与范畴;第2部分细致讨论架构所需的计算机功底,包括...

¥49.00

iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift

[德] Marcel Weiher (作者) 李俊阳 马超 程伟 孙莹 译 (译者)

随着应用功能的日益增加,性能问题也逐渐浮出水面,进入我们的视野之中。本书作者Marcel Weiher在性能调优领域有着丰富的经验,在他的带领下,你将会了解如何...

¥99.00

Scala编程(第3版)

Martin Odersky;Lex Spoon;Bill Venners (作者) 高宇翔 (译者)

本书由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala...

¥144.00

质量全面管控——从项目管理到容灾测试

葛长芝 (作者)

本书专门为有志于软件测试的工程师打开软件测试的大门,笔者结合案例讲解测试实践技术,主要内容有:项目管理、项目需求管理、代码质量控制、自动化部署、软件测试、安全测...

¥49.00

Spring MVC Cookbook中文版

Alex Bretet (作者) 张龙 (译者)

本书由浅入深地介绍了当今流行的Java Web框架Spring MVC的方方面面,从基础的环境搭建到微服务设计与架构,再到持久化、REST API构建、认证与测...

¥99.00