MySQL学习手册( 第二版)
Vinicius M. Grippa, Sergey Kuzmichev
安道 译
出版时间:2023年03月
页数:630
“MySQL及其生态系统日新月异,很久没有遇到这么优秀的书了。千万别错过内容丰富的最后一章!”
——Frederic Descamps
Oracle公司MySQL布道师

本书介绍了如何使用MySQL建立和设计一个有效的数据库。这一版全面更新,涵盖MySQL最新版本,包括最新功能。无论是部署环境、排除故障,还是参与灾难恢复,这本实用指南都可为你提供见解和工具,让你充分利用这个强大的RDBMS。
来自Percona的两位作者Vinicius Grippa和Sergey Kuzmichev向开发者和DBA展示了最小化成本、最大化可用性和性能的方法。你将学会如何执行基本和高级查询、监控和故障排除、数据库管理和安全措施、备份和恢复,以及提高效率的调校方法。这一版新增了讲解高可用性、负载均衡和MySQL云应用的章节。
● 上手使用MySQL,学习如何在生产环境中使用MySQL。
● 在裸机、虚拟机和云中部署MySQL数据库。
● 设计数据库基础设施。
● 编写高效的查询代码。
● 监控MySQL数据库,排除故障。
● 高效执行备份和还原操作。
● 利用云技术优化数据库成本。
● 理解数据库概念,特别是与MySQL有关的概念。
  1. 前言
  2. 第1章 安装MySQL
  3. 1.1 MySQL分支
  4. 1.1.1 MySQL社区版
  5. 1.1.2 Percona Server for MySQL
  6. 1.1.3 MariaDB服务器
  7. 1.1.4 MySQL企业版
  8. 1.2 安装选择和平台
  9. 1.2.1 第1步:下载要安装的分发包
  10. 1.2.2 第2步:安装分发包
  11. 1.2.3 第3步:安装后执行必要的设置
  12. 1.2.4 第4步:运行基准测试
  13. 1.3 在Linux中安装MySQL
  14. 1.3.1 在CentOS 7中安装MySQL
  15. 1.3.2 在CentOS 8中安装MySQL
  16. 1.3.3 在Ubuntu 20.04 LTS(Focal Fossa)中安装MySQL
  17. 1.4 在macOS Big Sur中安装MySQL
  18. 1.5 在Windows 10中安装MySQL
  19. 1.6 MySQL目录的内容
  20. 1.6.1 MySQL 5.7默认文件
  21. 1.6.2 MySQL 8.0默认文件
  22. 1.7 使用命令行界面
  23. 1.8 使用Docker
  24. 1.9 使用沙盒
  25. 1.9.1 安装DBdeployer
  26. 1.9.2 使用DBdeployer
  27. 1.10 升级MySQL服务器
  28. 第2章 数据库建模与设计
  29. 2.1 数据库设计不佳的后果
  30. 2.2 数据库设计过程
  31. 2.3 实体关系模型
  32. 2.3.1 表示实体
  33. 2.3.2 表示关系
  34. 2.3.3 部分参与和完全参与
  35. 2.3.4 实体还是属性?
  36. 2.3.5 实体还是关系?
  37. 2.3.6 中间实体
  38. 2.3.7 弱实体和强实体
  39. 2.4 数据库规范化
  40. 2.5 规范化一个示例表
  41. 2.5.1 第一范式:无重复组
  42. 2.5.2 第二范式:消除冗余数据
  43. 2.5.3 第三范式:消除不依赖于键的数据
  44. 2.6 实体关系建模示例
  45. 2.7 使用实体关系模型
  46. 2.7.1 把实体和关系转换成数据库表
  47. 2.7.2 创建一个银行数据库ER模型
  48. 2.7.3 使用Workbench把EER转换为MySQL数据库
  49. 第3章 SQL基础
  50. 3.1 使用sakila数据库
  51. 3.2 SELECT语句和基本查询技术
  52. 3.2.1 单表选择
  53. 3.2.2 选择列
  54. 3.2.3 使用WHERE子句选择行
  55. 3.2.4 ORDER BY子句
  56. 3.2.5 LIMIT子句
  57. 3.2.6 连接两个表
  58. 3.3 INSERT语句
  59. 3.3.1 INSERT基础知识
  60. 3.3.2 其他句法
  61. 3.4 DELETE语句
  62. 3.4.1 DELETE基础知识
  63. 3.4.2 使用WHERE、ORDER BY和LIMIT
  64. 3.4.3 使用TRUNCATE删除所有行
  65. 3.5 UPDATE语句
  66. 3.5.1 示例
  67. 3.5.2 使用WHERE、ORDER BY和LIMIT
  68. 3.6 使用SHOW和mysqlshow浏览数据库和表
  69. 第4章 处理数据库结构
  70. 4.1 创建和使用数据库
  71. 4.2 创建表
  72. 4.2.1 基础知识
  73. 4.2.2 排序规则和字符集
  74. 4.2.3 其他功能
  75. 4.2.4 列类型
  76. 4.2.5 键和索引
  77. 4.2.6 AUTO_INCREMENT功能
  78. 4.3 改变结构
  79. 4.3.1 添加、删除和更改列
  80. 4.3.2 添加、删除和更改索引
  81. 4.3.3 重命名表和更改其他结构
  82. 4.4 删除结构
  83. 4.4.1 删除数据库
  84. 4.4.2 删除表
  85. 第5章 高级查询
  86. 5.1 别名
  87. 5.1.1 列别名
  88. 5.1.2 表别名
  89. 5.2 聚集数据
  90. 5.2.1 DISTINCT子句
  91. 5.2.2 GROUP BY子句
  92. 5.2.3 HAVING 子句
  93. 5.3 高级连接
  94. 5.3.1 内连接
  95. 5.3.2 UNION语句
  96. 5.3.3 左连接和右连接
  97. 5.3.4 自然连接
  98. 5.3.5 连接中的常量表达式
  99. 5.4 嵌套查询
  100. 5.4.1 嵌套查询基础
  101. 5.4.2 ANY、SOME、ALL、IN和NOT IN子句
  102. 5.4.3 EXISTS和NOT EXISTS子句
  103. 5.4.4 在FROM子句中使用嵌套查询
  104. 5.4.5 在连接中使用嵌套查询
  105. 5.5 用户变量
  106. 第6章 事务和封锁
  107. 6.1 隔离级别
  108. 6.1.1 REPEATABLE READ
  109. 6.1.2 READ COMMITTED
  110. 6.1.3 READ UNCOMMITTED
  111. 6.1.4 SERIALIZABLE
  112. 6.2 封锁
  113. 6.2.1 元数据锁
  114. 6.2.2 行锁
  115. 6.2.3 死锁
  116. 6.3 隔离和锁相关的MySQL参数
  117. 第7章 MySQL进阶功能
  118. 7.1 使用查询插入数据
  119. 7.2 从逗号分隔值文件中加载数据
  120. 7.3 把数据写入逗号分隔值文件
  121. 7.4 通过查询创建表
  122. 7.5 对多个表执行更新和删除
  123. 7.5.1 删除
  124. 7.5.2 更新
  125. 7.6 替换数据
  126. 7.7 EXPLAIN 语句
  127. 7.8 不同的存储引擎
  128. 7.8.1 InnoDB
  129. 7.8.2 MyISAM和Aria
  130. 7.8.3 MyRocks和TokuDB
  131. 7.8.4 其他表类型
  132. 第8章 管理用户和权限
  133. 8.1 了解用户和权限
  134. 8.2 root用户
  135. 8.3 创建和使用新用户
  136. 8.4 授权表
  137. 8.5 用户管理命令和日志
  138. 8.6 修改和删除用户
  139. 8.6.1 修改用户
  140. 8.6.2 删除用户
  141. 8.7 权限
  142. 8.7.1 静态权限和动态权限
  143. 8.7.2 SUPER权限
  144. 8.7.3 权限管理命令
  145. 8.7.4 检查权限
  146. 8.7.5 GRANT OPTION权限
  147. 8.8 角色
  148. 8.9 以不安全模式启动,更改root用户的密码
  149. 8.10 安全设置的一些建议
  150. 第9章 使用选项文件
  151. 9.1 选项文件的结构
  152. 9.2 选项的作用域
  153. 9.3 选项文件的搜索顺序
  154. 9.4 特殊的选项文件
  155. 9.4.1 登录路径配置文件
  156. 9.4.2 持久化系统变量配置文件
  157. 9.5 确定生效的选项
  158. 第10章 备份和恢复
  159. 10.1 物理备份和逻辑备份
  160. 10.1.1 逻辑备份
  161. 10.1.2 物理备份
  162. 10.1.3 逻辑备份和物理备份综述
  163. 10.2 把复制当作备份方式
  164. 10.2.1 基础设施故障
  165. 10.2.2 部署bug
  166. 10.3 mysqldump程序
  167. 10.4 从SQL转储文件中加载数据
  168. 10.5 mysqlpump
  169. 10.6 mydumper和myloader
  170. 10.7 冷备份和文件系统快照
  171. 10.8 Percona XtraBackup
  172. 10.8.1 备份和恢复
  173. 10.8.2 高级功能
  174. 10.8.3 使用XtraBackup增量备份
  175. 10.9 其他物理备份工具
  176. 10.9.1 MySQL Enterprise Backup
  177. 10.9.2 mariabackup
  178. 10.10 时间点恢复
  179. 10.10.1 二进制日志的技术背景
  180. 10.10.2 保留二进制日志
  181. 10.10.3 识别PITR目标
  182. 10.10.4 时间点恢复示例:XtraBackup
  183. 10.10.5 时间点恢复示例:mysqldump
  184. 10.11 导出和导入InnoDB表空间
  185. 10.11.1 技术背景
  186. 10.11.2 导出表空间
  187. 10.11.3 导入表空间
  188. 10.11.4 XtraBackup单表还原
  189. 10.12 测试和验证备份
  190. 10.13 数据库备份策略思路
  191. 第11章 配置和调校MySQL服务器
  192. 11.1 MySQL服务器守护进程
  193. 11.2 MySQL服务器变量
  194. 11.2.1 检查服务器设置
  195. 11.2.2 最佳实践
  196. 第12章 监控MySQL服务器
  197. 12.1 操作系统指标
  198. 12.1.1 CPU
  199. 12.1.2 磁盘
  200. 12.1.3 内存
  201. 12.1.4 网络
  202. 12.2 MySQL服务器观测指标
  203. 12.2.1 状态变量
  204. 12.2.2 基本监控指标
  205. 12.2.3 慢查询日志
  206. 12.2.4 InnoDB引擎状态报告
  207. 12.3 调查方法
  208. 12.3.1 USE方法
  209. 12.3.2 RED方法
  210. 12.4 MySQL监控工具
  211. 12.5 自己动手收集数据诊断事故
  212. 12.5.1 定期收集系统状态变量值
  213. 12.5.2 使用pt-stalk收集MySQL和操作系统指标
  214. 12.5.3 扩充手动数据收集
  215. 第13章 高可用性
  216. 13.1 异步复制
  217. 13.1.1 要在源和复本中设置的基本参数
  218. 13.1.2 使用Percona XtraBackup创建复本
  219. 13.1.3 使用clone插件创建复本
  220. 13.1.4 使用mysqldump创建复本
  221. 13.1.5 使用mydumper和myloader创建复本
  222. 13.1.6 组复制
  223. 13.2 同步复制
  224. 第14章 MySQL云应用
  225. 14.1 数据库即服务(DBaaS)
  226. 14.1.1 Amazon RDS for MySQL/MariaDB
  227. 14.1.2 Google Cloud SQL for MySQL
  228. 14.1.3 Azure SQL
  229. 14.2 Amazon Aurora
  230. 14.3 MySQL云实例
  231. 14.4 使用Kubernetes部署MySQL
  232. 第15章 MySQL负载均衡
  233. 15.1 通过应用驱动实现负载均衡
  234. 15.2 负载均衡程序ProxySQL
  235. 15.3 负载均衡程序HAProxy
  236. 15.4 MySQL路由器
  237. 第16章 其他话题
  238. 16.1 MySQL Shell
  239. 16.1.1 安装MySQL Shell
  240. 16.1.2 在Ubuntu 20.04 Focal Fossa中安装MySQL Shell
  241. 16.1.3 在CentOS 8中安装MySQL Shell
  242. 16.1.4 使用MySQL Shell部署一个沙盒InnoDB集群
  243. 16.1.5 MySQL Shell实用方法
  244. 16.2 火焰图
  245. 16.3 从源码构建MySQL
  246. 16.4 分析MySQL崩溃原因
书名:MySQL学习手册( 第二版)
译者:安道 译
国内出版社:中国电力出版社
出版时间:2023年03月
页数:630
书号:978-7-5198-6968-7
原版书书名:Learning MySQL, Second Edition
原版书出版商:O'Reilly Media
Vinicius M. Grippa
 
Vinicius Grippa是Percona高级支持工程师,获得Oracle Ace Associate认证。Vinicius拥有计算机科学学士学位,从事数据库工作已有13年。他经验丰富,为任务关键型应用设计过数据库。经过几年发展,他已经成为MySQL和MongoDB生态系统专家。他在支持团队中工作,帮助Percona客户处理了数百个不同的案例,历经大量使用场景,解决过各种复杂问题。Vinicius在操作系统社区也很活跃,积极参与Slack等虚拟聊天室,在线下聚会上经常发言,还踊跃参加在欧洲、亚洲和南北美洲举办的会议。
 
 
Sergey Kuzmichev
 
Sergey Kuzmichev是Percona高级支持工程师。他喜欢解决技术难题、探索数据库、构建可靠的系统。Sergey经常为开源项目贡献代码、提交bug报告,还在博客中撰写关于MySQL和其他开源数据库的文章。加入Percona之前,Sergey已经从事DBA和DevOps工程师近十年。
 
 
本书封面上的动物是蓝点紫斑蝶(学名:Euploea midamus),一种分布在印度和东南亚的蝴蝶。
这种蝴蝶多为黑色和深褐色,胸部和翅膀外缘有白色斑点。翅膀上的蓝色斑块是由折射光产生的结构色,不是翅膀表面本身的颜色。
与许多蝴蝶种类一样,蓝点紫斑蝶幼虫主要以单一植物类群(夹竹桃科)的叶子和茎为食。卵产在夹竹桃科植物的下表面。幼虫经历五个龄期的进化,最终化蛹和羽化为成虫。成年蝴蝶以许多花朵的花蜜为食,有时会大量聚集在一株植物上,使用口器吸食花蜜。
蝴蝶翅膀的内膜被一层薄薄的重叠的小鳞片包裹着。这些微小鳞片的边缘散射和折射光线,产生彩虹色和蓝色(鳞片也起到防水和辅助散热的作用)。研究表明,不同属(例如紫斑蝶属)的蝴蝶,翅膀上的鳞片模式是不同的。一些紫斑蝶属蝴蝶颜色特别黑,因而得到特别研究。
蓝点紫斑蝶很常见,虽然在其分布区的某些地方是受保护物种,但是国际自然保护联盟尚未对其保护状况进行评估。O’Reilly出版的图书,封面上的动物很多均濒临灭绝。这些动物都是地球的至宝。
封面彩图由Karen Montgomery根据Charles Knight的Pictorial Museum of Animated Nature(1844年出版)中的一幅黑白版画绘制。
购买选项
定价:198.00元
书号:978-7-5198-6968-7
出版社:中国电力出版社