MySQL 8 Cookbook(中文版)

《MySQL 8 Cookbook(中文版)》

  • 出版社:电子工业出版社
  • ISBN:9787121350108
  • 版次:1
  • 商品编码:12471786
  • 品牌:博文视点
  • 包装:平装
  • 开本:16开
  • 出版时间:2018-11-01
  • 用纸:胶版纸
  • 页数:444
  • 字数:555000
基本介绍书籍目录点评信息
  • 书籍内容

    MySQL 8.0 的发布是MySQL 发展历史上的一个重要里程碑,也是开源数据库领域内的一个大事件。针对这个版本,MySQL 官方团队做了太多的工作,从查询优化到集群架构,从参数调整到特性支持,MySQL 都有了革命性的变化。《MySQL 8 Cookbook(中文版)》基于MySQL 8.0,以基础知识为入手点,以讲解技术特性为目标,以案例作为理论的补充,详细介绍了MySQL 的方方面面,提供了超过150 个高性能数据库查询与管理技巧,是MySQL 入门者和管理者的必读之作。

    编辑推荐

    适读人群 :初次使用MySQL或者之前已经使用过MySQL,并且希望将应用程序迁移到MySQL 8以及想要解决使用MySQL时遇到的问题的人。
    ■ MySQL 8的更新幅度在MySQL历史上可谓空前,增添很多重磅新特性——“数据字典”取消了已存在几十年的frm文件,将插件式数据库的重心偏向InnoDB,极大提高meta data的访问性能,并支持了DDL原子性,还可进一步实现DDL回滚等操作;支持隐藏索引,使DBA能更加灵活地对数据库调优;统计分析方面支持通用表表达式、窗口函数等,在数据库层面实现复杂计算;以及划时代变革MGR架构。
    ■ 使用过MySQL早期版本的数据库管理员和开发者,可通过本书了解MySQL 8的新功能及如何利用;有其他RDBMS(如Oracle、MSSQL、PostgreSQL和DB2)工作经验的读者可将本书作为学习MySQL 8的快速入门指南;初学者可作为使用手册,参考书中内容找到问题的快速解决方案;MySQL专家可以将本书作为解决不常见问题及疑难杂症的工具书。
    ■ 本书可让你做好应对生产环境问题的准备。读完本书后,你将有信心管理好拥有海量数据集的大型数据库服务器。作者使用MySQL超过10年,目睹大量小错误导致的重大停机事故,本书涵盖许多容易出错的场景,并用警告图标显著标出。
    ■ 本书介绍MySQL 8新特性,以及管理高并发事务和实时数据集的实践经验;还讲了有效管理MySQL的方法,包括有效的用户管理、数据恢复、安全性保障、数据库监控、性能调优、排除故障等;本书解决MySQL 8问题中的实用技巧和诀窍能帮你有效地设计、开发和管理数据库。
    √ 无障碍安装和配置MySQL 8实例
    √ 掌握MySQL 8的新特性,如CTE、窗口函数等
    √ 执行备份任务、恢复数据并为数据库设置各种复制拓扑
    √ 利用降序索引、控制查询优化器和资源组等MySQL 8的新功能大幅提高性能
    √ 了解如何使用公用表表达式来满足SaaS或多租户应用程序的需要
    √ 使用performance schema、sys schema和第三方工具分析慢查询
    √ 管理和监控MySQL实例,并高效地完成性能调优任务

    作者简介

    Karthik Appigatla是一位备受尊敬的数据库架构师,他在性能调优领域闻名于世。他为世界各地的许多公司提供设计咨询、性能调优、数据库架构设计和培训服务。在过去十年中,他曾供职于雅虎、Pythian和Percona等公司。目前,他任职于LinkedIn,在那里他发明了一种新的分析查询方法,并于2017年在都柏林的SRECon上发表了关于这个新发明的演讲。
    译者简介
    周彦伟,Oracle ACE Director(MySQL),中国计算机行业协会开源数据库专业委员会会长,中国MySQL用户组(ACMUG)主席,曾在去哪儿网、人人网等互联网公司工作多年,专注于MySQL数据库的技术和推广,著有《MySQL运维内参》,该书被业内从业者视为MySQL面试宝典。2018年创办极数云舟,提供MySQL技术产品和顾问服务。
    孟治华,美国波士顿大学计算机专业硕士,拥有14年以上的数据库相关项目经验,曾多年在美国为Walmart、CVS Health等世界500强公司提供数据仓库和商业智能项目咨询服务。回国后积极参与ACMUG等知名开源社区活动,并致力于开源数据库知识的推广和传播。
    王学芳,中国矿业大学(北京)计算机技术专业在读研究生,对数据库很感兴趣,一直关注MySQL社区的发展动态、技术革新等内容。
  • 第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
  • 精彩书评

    自2010年加入MySQL原厂推广MySQL技术以来,我深刻地体会到一本优秀的MySQL专业书籍对MySQL技术人来说是多么重要,一本结构完善、内容深入浅出的MySQL书籍又是多么难得。而这本书正是这样一本少见的好书,因为原著作者是优秀的MySQL专家,更为难得的是,两位主要译者都具备不错的英文能力和深厚的MySQL专业背景。周彦伟在大中华区的MySQL专业人士中名声响亮,由于他在MySQL技术领域取得的成就,以及多年来对MySQL社区发展的领导,Oracle公司特别授予他MySQL技术人至高等级的荣誉——Oracle ACE Director(MySQL)。第二译者是孟治华先生,他在美国优秀大学取得计算机专业硕士学位后,在美国的世界500强公司积累了十多年的数据库开发和管理经验。他们精心挑选并翻译了由Karthik Appigatla所著的MySQL 8 Cookbook一书,这本书对于MySQL入门者来说,可以作为由浅入深地全面了解MySQL的学习宝典;对于MySQL专家来说,可以作为解决疑难杂症的工具书。
    当我畅快淋漓地拜读完本书后,深刻感觉到译者对一本好的翻译著作的贡献不亚于原著作者的贡献。由于译者们都是优秀的MySQL专家,对原文所谈的专业技术和数据库管理场景都有深刻理解,所以能够贴切地把原著的意思以中文表达出来,并使之符合国内读者的阅读习惯。本书的翻译质量远高于一般技术书的翻译质量,很高兴看到这么一本MySQL技术书问世,也期望它能造福更多MySQL专业人士以及有兴趣成为MySQL专业人的小伙伴们。
    杜修文
    MySQL全球事业部技术顾问群北区经理
    听说彦伟兄又有数据库新书推出,真是欣喜若狂,他居然能从创业之初的繁重公务中抽出身来,亲历亲为,为大家再献上一本数据库领域的上乘之作。此书与市面上已有的MySQL书籍不同,它是关于MySQL的新版本MySQL 8.0的维护与管理工作的,展示了MySQL全新的知识与内容。MySQL 8.0于2018年4月发布,距今已半年有余,但相关的书籍却寥寥无几,这对开源数据库在中国的推广非常不利。本书的出版将弥补这一缺憾。
    一个行业的进步离不开那些默默前行的负重者,更需要登高疾呼的感召者。感谢Karthik Appigatla为我们编写了如此前卫实用的内容,感谢周彦伟、孟治华和王学芳把如此精彩难得的书籍带给中国读者,为国内的MySQL使用者再点一盏明灯。
    刘启荣
    中国计算机行业协会开源数据库专业委员会副会长,京东金融运维总监
    MySQL官方新发布的MySQL 8与以往的版本相比变化很大,市面上尚无相关的中文书籍,可以说此书的出版应时应景。
    当年严复提出,翻译要做到信、达、雅,这实际上是非常难的事情,不是所有精通外语的人都能翻译好书的。作为一个读者,我一口气读完了本书,确实没有出现卡壳现象,对内容的理解效率有明显提升。
    对老司机来说,此书能帮助快速了解新功能,让大家放心大胆地继续探索;对新手来说,此书能作为使用手册,帮助快速找到问题的解决方法。
    田发明
    中国计算机行业协会开源数据库专业委员会秘书长
    我个人学习MySQL技术是从MySQL 5.5版本开始的,相比之前的MySQL版本,MySQL 5.5的改进已经非常大。而多年后的今天,继MySQL 5.6、MySQL 5.7之后,MySQL推出了令人期待和振奋的MySQL 8版本。MySQL 8的更新幅度在MySQL历史上可谓空前,它增添了很多重磅的新特性,比如业内广受欢迎的“数据字典”,这个更新取消了已存在长达几十年的frm文件,将插件式数据库的重心偏向了InnoDB,极大地提高了meta data的访问性能,并且支持了DDL的原子性,将来还可以进一步实现DDL的回滚等操作;同时支持了隐藏索引,这使得DBA能够更加灵活地对数据库调优;在统计分析方面,还支持了被大家期待已久的通用表表达式、窗口函数等,这涉及一些在数据库层面可以实现的复杂计算,更新简单方便;当然还包括已经正式发布一年多的MGR,这个架构的推出可以说是MySQL划时代的变革。
    新功能不一而足,值得了解。以前,想要学习和使用MySQL的同学可能只能看英文手册。现在就不同了,从MySQL 8正式发布到现在时间并不长,在这短短的几个月里,这本MySQL 8的中文书籍就要面世了,这是多么值得称赞的一件事情。
    本人阅读了几章,可以感受到译者对MySQL的深刻理解和准确把握,该书可以很好地帮助对MySQL 8感兴趣的同学,强烈推荐。
    王竹峰
    去哪儿网数据库总监,Oracle MySQL ACE
    《MySQL运维内参》作者
微信公众号

热门文章

更多