具体描述
《MySQL管理之道(附光盘性能调优高可用与监控)》由资深MySQL专家贺春旸撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断 表设计 SQL优化 性能参数调优 mydumper逻辑 xtrabackup热备份与恢复 MySQL高可用集群搭建与管理 MySQL服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护MySQL服务器。
《MySQL管理之道(附光盘性能调优高可用与监控)》中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员 DBA等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本书适合所有希望构建和管理高性能 高可用性的MySQL数据库系统的开发者和DBA阅读。
作者简介
贺春旸,从事数据库管理工作多年,有管理和维护高并发海量数据的经验,曾经任职于中国移动飞信、国内某知名电商,致力于MySQL、Linux等开源技术的研究,在51CTO博客上公开发表数据库文章上百篇,现任职于机锋安卓市场,负责MySQl性能调优和架构设计。
目录信息
前 言
第1章 MariaDB架构与历史 1
1.1 MariaDB的介绍 1
1.2 MariaDB和MySQL的兼容性 2
1.3 MariaDB 10.0新增的功能 3
1.3.1 更多的存储引擎 4
1.3.2 速度的提升 5
1.3.3 扩展和新功能 5
1.4 如何将MySQL迁移至MariaDB 8
1.5 使用二进制包安装MariaDB 10.1企业版 10
1.6 总结 12
第2章 MySQL 5.7与MariaDB 10.1的新特性 13
2.1 性能提升 14
2.2 安全性的提升 15
2.2.1 默认开启SSL 15
2.2.2 不再明文显示用户密码 20
2.2.3 sql_mode的改变 20
2.3 InnoDB存储引擎的提升 22
2.3.1 更改索引名字时不会锁表 22
2.3.2 在线DDL修改varchar字段属性时不锁表 23
2.3.3 InnoDB/MyisAM存储引擎支持中文全文索引 26
2.3.4 InnoDB Buffer Pool预热改进 29
2.3.5 在线调整innodb_Buffer_Pool_Size不用重启mysql进程 31
2.3.6 回收(收缩)undo log回滚日志物理文件空间 32
2.3.7 InnoDB提供通用表空间 33
2.3.8 创建InnoDB独立表空间指定存放路径 34
2.3.9 迁移单独一张InnoDB表到远程服务器 35
2.3.10 修改InnoDB redo log事务日志文件大小更人性化 36
2.3.11 死锁可以打印到错误日志里 37
2.3.12 支持InnoDB只读事务 37
2.3.13 支持InnoDB表空间数据碎片整理 38
2.4 JSON格式的支持 39
2.4.1 支持用JSON格式存储数据 39
2.4.2 动态列支持用JSON格式存储数据 41
2.5 支持虚拟列(函数索引) 44
2.5.1 MySQL 5.7支持函数索引 44
2.5.2 MariaDB 10.0/10.1支持函数索引 45
2.6 功能提升 46
2.6.1 支持杀死慢的SQL语句 46
2.6.2 支持一张表有多个INSERT/DELETE/UPDATE触发器 48
2.6.3 引入线程池(Thread Pool)技术 49
2.6.4 提供审计日志功能 52
2.6.5 支持explain update 53
2.6.6 在MySQL 5.7 中按Ctrl+C组合键不会退出客户端 54
2.6.7 可将错误日志打印到系统日志文件中 54
2.6.8 支持创建角色 55
2.6.9 支持TokuDB存储引擎 56
2.7 优化器改进 59
2.7.1 针对子查询select采用半连接优化 59
2.7.2 优化派生子查询 62
2.7.3 优化排序limit 65
2.7.4 优化IN条件表达式 66
2.7.5 优化union all 69
2.7.6 支持索引下推优化 70
2.7.7 支持Multi Range Read索引优化 72
2.7.8 支持Batched Key Access(BKA)索引优化 75
2.7.9 支持Hash Join索引优化 77
2.8 半同步复制改进 78
2.8.1 半同步复制简介 78
2.8.2 半同步复制的安装配置 79
2.8.3 参数说明 79
2.8.4 功能测试 80
2.8.5 性能测试 84
2.9 GTID复制改进 87
2.9.1 GTID复制概述 87
2.9.2 在MySQL 5.6的GTID模式下同步复制报错不能跳过的解决方法 90
2.9.3 MySQL 5.7中GTID复制的改进 93
2.9.4 GTID复制的陷阱 95
2.9.5 MariaDB 10.1中GTID复制的改进 96
2.9.6 GTID的使用方式不同 97
2.10 MySQL 5.6/5.7从库崩溃安全恢复 98
2.11 MariaDB 10.0/10.1从库崩溃安全恢复 99
2.12 slave从库多线程复制 99
2.13 slave支持多源复制 101
2.14 MySQL 5.7设置同步复制过滤不用重启mysql服务进程 103
2.15 小结 104
第3章 故障诊断 105
3.1 影响MySQL性能的因素 105
3.2 系统性能评估标准 106
3.2.1 影响Linux服务器性能的因素 106
3.2.2 系统性能评估指标 107
3.2.3 开源监控和评估工具介绍 109
3.3 故障与处理 112
3.3.1 连接数过多导致程序连接报错的原因 112
3.3.2 记录子查询引起的宕机 117
3.3.3 诊断事务量突高的原因 120
3.3.4 谨慎设置binlog_format=MIXED 123
3.3.5 未设置swap分区导致内存耗尽,主机死机 127
3.3.6 MySQL故障切换之事件调度器注意事项 128
3.3.7 人工误删除InnoDB ibdata数据文件,如何恢复 130
3.3.8 update忘加where条件误操作恢复(模拟Oracle闪回功能) 132
3.3.9 delete忘加where条件误操作恢复(模拟Oracle闪回功能) 141
第4章 同步复制报错故障处理 145
4.1 最常见的3种故障 145
4.1.1 在master上删除一条记录时出现的故障 146
4.1.2 主键重复 147
4.1.3 在master上更新一条记录,而slave上却找不到 148
4.2 特殊情况:slave的中继日志relay-log损坏 149
4.3 人为失误 151
4.4 避免在master上执行大事务 152
4.5 slave_exec_mode参数可自动处理同步复制错误 153
4.6 如何验证主从数据一致 154
4.7 binlog_ignore_db引起的同步复制故障 156
4.8 MySQL5.5.19/20同步一个Bug 157
4.9 恢复slave从机上的某几张表的简要方法 159
4.10 如何干净地清除slave同步信息 160
第5章 性能调优 162
5.1 表设计 162
5.2 字段类型的选取 166
5.2.1 数值类型 167
5.2.2 字符类型 172
5.2.3 时间类型 174
5.2.4 小技巧:快速修改表结构 181
5.2.5 pt-online-schema-change在线更改表结构 185
5.2.6 MySQL5.6在线DDL更改表测试 191
5.3 采用合适的锁机制 194
5.3.1 表锁的演示 194
5.3.2 行锁的演示 197
5.3.3 InnoDB引擎与MyISAM引擎的性能对比 199
5.4 选择合适的事务隔离级别 201
5.4.1 事务的概念 201
5.4.2 事务的实现 202
5.4.3 事务隔离级别介绍 204
5.5 SQL优化与合理利用索引 210
5.5.1 如何定位执行很慢的SQL语句 210
5.5.2 SQL优化案例分析 211
5.5.3 合理使用索引 221
5.6 my.cnf配置文件调优 231
5.6.1 per_thread_buffers优化 231
5.6.2 global_buffers优化 233
5.6.3 Query Cache在不同环境下的使用 234
5.6.4 tuning-primer.sh性能调试工具的使用 238
5.6.5 72 GB内存的my.cnf配置文件 241
5.6.6 谨慎使用分区表功能 244
5.7 MySQL5.6同步复制新特性详解 246
第6章 备份与恢复 256
6.1 冷备份 257
6.2 逻辑备份 257
6.2.1 mysqldump增加了一个重要参数 258
6.2.2 取代mysqldump的新工具mydumper 259
6.2.3 逻辑备份全量、增量备份脚本 262
6.3 热备份与恢复 263
第7章 高可用MHA架构集群管理 268
7.1 MHA架构简介 268
7.1.1 master自动监控和故障转移 270
7.1.2 手工处理master故障转移 270
7.1.3 在线平滑切换 270
7.2 MHA配置安装 270
7.3 MHA故障切换演示 277
7.3.1 场景一:master自动监控和故障转移 277
7.3.2 场景二:master手工故障转移 285
7.3.3 场景三:在线平滑切换 285
7.4 MHA高可用架构总结 290
第8章 MySQL架构演进:“一主多从、读/写分离” 293
8.1 实现读/写分离的两种方式 293
8.2 主从同步延迟的判断标准 297
8.3 HAProxy感知MySQL主从同步延迟 300
8.4 读/写分离MariaDB MaxScale架构搭建演示 307
8.4.1 配置环境及安装介绍 307
8.4.2 基于connect方式的测试 311
8.4.3 基于statement方式(SQL解析)的测试 312
8.4.4 MaxScale延迟检测 313
8.5 读/写分离OneProxy介绍及架构搭建演示 315
8.5.1 OneProxy简介 316
8.5.2 OneProxy的功能及安装介绍 316
8.5.3 OneProxy读/写分离接入限制 320
第9章 Codership Galera Cluster 集群架构搭建与管理 322
9.1 Codership Galera Cluster的特性和优缺点 323
9.2 Codership Galera Cluster的局限性 323
9.3 Codership Galera Cluster的工作原理 324
9.4 Codership Galera Cluster的配置 328
9.4.1 Codership Galera Cluster的配置环境及安装 328
9.4.2 功能测试 332
9.5 HAProxy结合Galera Cluster实现无单点秒级故障切换 337
第10章 OneProxy分库分表的搭建与管理 345
10.1 OneProxy 分库分表的搭建 346
10.1.1 配置与安装 346
10.1.2 前端PHP/Java程序接入事项 349
10.2 OneProxy分库分表接入限制 349
10.3 OneProxy分库分表基本测试 351
10.3.1 分库分表的功能测试 351
10.3.2 分库分表的二级分区测试 354
10.3.3 分库分表的聚合测试 358
10.3.4 分库分表的插入测试 359
10.3.5 分库分表不支持跨库join的测试 360
10.3.6 分库分表不支持分布式事务的测试 361
10.3.7 分库分表不支持存储过程的测试 361
10.4 搭建OneProxy高可用故障切换HA 362
10.5 OneProxy 黑名单SQL防火墙搭建测试 363
第11章 Lepus慢日志分析平台搭建与维护 367
11.1 Lepus基础组件的安装 367
11.2 安装percona-toolkit工具 370
· · · · · · (收起)
读后感
《MySQL管理之道(附光盘性能调优高可用与监控)》由资深MySQL专家贺春旸撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断 表设计 SQL优化 性能参数调优 mydumper逻辑 xtrabackup热备份与恢复 MySQL高可用集群搭建与管理 MySQL服务器性能和服务监控等...
《MySQL管理之道(附光盘性能调优高可用与监控)》由资深MySQL专家贺春旸撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断 表设计 SQL优化 性能参数调优 mydumper逻辑 xtrabackup热备份与恢复 MySQL高可用集群搭建与管理 MySQL服务器性能和服务监控等...
《MySQL管理之道(附光盘性能调优高可用与监控)》由资深MySQL专家贺春旸撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断 表设计 SQL优化 性能参数调优 mydumper逻辑 xtrabackup热备份与恢复 MySQL高可用集群搭建与管理 MySQL服务器性能和服务监控等...
《MySQL管理之道(附光盘性能调优高可用与监控)》由资深MySQL专家贺春旸撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断 表设计 SQL优化 性能参数调优 mydumper逻辑 xtrabackup热备份与恢复 MySQL高可用集群搭建与管理 MySQL服务器性能和服务监控等...
《MySQL管理之道(附光盘性能调优高可用与监控)》由资深MySQL专家贺春旸撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断 表设计 SQL优化 性能参数调优 mydumper逻辑 xtrabackup热备份与恢复 MySQL高可用集群搭建与管理 MySQL服务器性能和服务监控等...
用户评价
作为一个对技术有着强烈好奇心的人,我总是喜欢深入了解我所使用的工具。MySQL作为一款广泛使用的关系型数据库,其背后蕴藏着许多精妙的设计和复杂的机制。我曾经尝试阅读过一些MySQL的官方文档,但其内容繁杂且篇幅巨大,很难从中梳理出清晰的脉络。《MySQL管理之道(第2版)》这本书,以其“管理之道”的定位,似乎能够帮助我系统地梳理和理解MySQL的各项管理技能和核心原理。我尤其对书中关于“MySQL的内部架构”、“存储引擎的原理”、“复制与高可用性”以及“性能监控与调优”等章节充满了期待。我希望能够通过这本书,不仅了解MySQL的各种功能和操作,更能理解这些功能和操作背后的设计理念和实现细节。这不仅能够提升我使用MySQL的效率,更能够激发我进一步探索和学习的兴趣。我相信,这本书将成为我深入探索MySQL世界的重要向导。
我是一名在校的研究生,主要研究方向是大数据分析和数据库系统。在学术研究中,数据库的性能和稳定性直接影响着实验结果的可信度和研究效率。因此,我对MySQL的深入理解有着非常高的要求。我选择《MySQL管理之道(第2版)》这本书,是因为它在内容深度和广度上都显得非常全面。我尤其对书中关于MySQL的架构设计、存储引擎原理、复制和集群的实现机制等内容非常感兴趣。我希望能够通过这本书,深入理解MySQL的底层工作原理,从而能够为我的研究项目设计出更优化的数据库解决方案。同时,我也希望能从中学习到一些关于大数据场景下MySQL的应用和优化技巧,例如如何处理海量数据,如何进行高效的数据检索和分析等。这本书不仅仅是提供操作手册,更重要的是能够帮助我建立起一套完整的数据库管理思想和方法论。我相信,通过认真研读这本书,我能够为我的学术研究和未来的职业发展打下坚实的基础。
在我的开发生涯中,数据库的稳定性始终是我最关心的问题之一。我曾经在多个项目中遇到过因为数据库设计不合理、SQL语句低效或者参数配置不当而导致的性能问题,甚至影响了整个系统的正常运行。因此,我一直在寻找一本能够帮助我从根本上提升数据库管理能力的图书。《MySQL管理之道(第2版)》这本书,从其内容简介来看,正是这样一本能够提供系统性指导和深度解析的著作。我特别看重书中关于“数据库的性能调优”、“故障排查与诊断”以及“高可用性解决方案”等章节。我希望能够从中学习到如何建立一套科学的性能评估体系,如何精准地定位和解决数据库瓶颈,以及如何设计和实施可靠的容灾备份和高可用方案。这本书的出现,无疑能帮助我构建更加健壮、高效、可依赖的数据库系统,从而为我的项目提供坚实的技术保障。
我是一名自由职业者,主要为客户提供Web应用程序开发服务。在我的开发过程中,数据库的设计和优化是至关重要的一环。我曾经也阅读过一些关于MySQL的书籍,但总觉得它们要么过于基础,要么过于理论化,很难真正解决我在实际开发中遇到的问题。 《MySQL管理之道(第2版)》这本书,从它的目录结构和内容概述来看,似乎更加贴近实际应用,而且对“管理”和“之道”的强调,预示着它将提供更具指导意义的内容。我特别关注书中关于“SQL优化”和“索引策略”的部分,因为这直接影响到我应用程序的性能和用户体验。我希望能够从中学习到如何编写出更高效的SQL语句,如何根据不同的业务场景设计最优的索引,以及如何利用MySQL的内置工具来分析和诊断性能问题。此外,书中关于“数据库架构设计”和“高可用性方案”的探讨,也能够为我未来的项目提供更长远的规划和技术视野,帮助我更好地为客户提供稳定可靠的解决方案。
我对MySQL的学习一直处于一种“知其然,不知其所以然”的状态。我知道如何写SQL,如何创建表,但对于MySQL的内部工作原理,例如它的存储引擎是如何工作的,它的查询优化器是如何工作的,它又是如何处理并发请求的,我总是感到非常模糊。 《MySQL管理之道(第2版)》这本书,从它的标题就能看出,它不仅仅是教你如何使用MySQL,更是教你如何“管理”它,如何理解它的“道”。这正是我所渴望的。我希望通过阅读这本书,能够深入理解MySQL的内部机制,例如它在处理读写操作时的不同策略,它如何管理事务和锁,以及它的日志系统是如何工作的。一旦我能够理解这些底层的原理,我就能够更自信地进行性能调优,更准确地排查故障,并且能够更明智地设计数据库的架构。这本书的出现,仿佛为我打开了一扇通往MySQL核心世界的大门,让我能够真正地掌握这门技术,而不是仅仅停留在表面。
作为一名多年从事IT运维的老兵,我见过太多因为数据库问题导致的线上事故。从最初的简单的SQL编写不当,到后来的硬件资源瓶颈,再到复杂的集群故障,我都或多或少地经历过。在多年的实践中,我深刻体会到,如果对数据库的原理理解不透彻,很多问题只能是“头痛医头,脚痛医脚”,无法从根本上解决。所以,当我看到《MySQL管理之道(第2版)》这本书时,我立刻被它吸引了。从书名上就能看出,这本书注重的是“管理之道”,而不是简单的“操作指南”。我特别期待书中关于MySQL的“性能调优”和“故障排查”的章节,希望能从中学习到更系统、更深入的方法论,不仅仅是掌握工具的使用,更能理解背后的原理。同时,对于“高可用性”和“安全性”的讨论,也是我极为关注的,因为这直接关系到线上系统的稳定运行。我希望这本书能帮助我建立起一套更加完善的数据库运维体系,提升我在面对复杂线上问题时的处理能力,减少故障的发生,保障业务的连续性。
我是一名在校的计算机科学专业的学生,对于数据库技术一直有着浓厚的兴趣。在学习了数据库的基本理论后,我希望能够通过一本优秀的书籍来深入了解MySQL这一在业界应用广泛的数据库系统。《MySQL管理之道(第2版)》这本书,从其内容上看,覆盖了MySQL的方方面面,从基础的安装配置到高级的性能调优、架构设计,都进行了详细的阐述。我尤其期待书中关于“SQL优化”、“索引策略”以及“事务与并发控制”的讲解。我希望能够通过学习这些内容,不仅能够写出更优化的SQL语句,更能理解MySQL是如何处理并发请求的,以及如何通过合理的事务设计来保证数据的一致性。同时,书中关于“复制与高可用性”的介绍,也为我打开了了解分布式数据库和高可用性解决方案的大门。我相信,这本书将是我学习MySQL路上的一个重要里程碑,为我未来的学习和职业发展奠定坚实的基础。
我是一名即将毕业的大学生,在学校学习数据库课程时,第一次接触到了MySQL。虽然课程中有一些基础知识的讲解,但总感觉不够深入,很多实际操作中的细节和技巧都无法掌握。因此,在毕业前夕,我迫切需要一本能够系统梳理MySQL知识、解决实际问题的书籍。在对比了市面上几本主流的MySQL书籍后,我选择了《MySQL管理之道(第2版)》。拿到书的那一刻,我就被它厚实的体量和严谨的排版所吸引。翻开目录,看到里面涵盖了从安装配置、SQL优化、性能调优、架构设计、安全管理,到高可用性方案等方方面面,我的内心充满了期待。我尤其关注关于SQL优化和性能调优的部分,因为这正是我在学习和实践中最常遇到的瓶颈。我希望这本书能够提供切实可行的解决方案,帮助我写出更高效的SQL语句,并理解数据库性能瓶颈产生的根源。同时,对于数据库的架构设计和高可用性方案,我也是初学者,希望能通过这本书建立起一个初步的认知,为未来从事数据库相关工作打下坚实的基础。这本书的纸质也很好,拿在手里很有分量,印刷清晰,字体大小适中,阅读起来非常舒适。我迫不及待地想开始我的阅读之旅,相信这本书一定会成为我学习MySQL路上的得力助手。
作为一个有着几年MySQL使用经验的后端工程师,我深知一个稳定、高效的数据库是整个系统运行的基石。在工作中,我经常会遇到各种与MySQL相关的疑难杂症,比如查询缓慢、连接数爆满、数据迁移困难等等。虽然我能够通过一些零散的资料和社区讨论来解决眼前的问题,但总觉得缺乏一个系统性的理论指导和深入的原理分析。因此,我一直在寻找一本能够真正提升我MySQL管理能力的书籍。《MySQL管理之道(第2版)》正好满足了我的需求。这本书的作者在MySQL领域有着深厚的造诣,从这本书的章节设置和内容深度来看,就能感受到作者的专业性和严谨性。我尤其看重书中关于“性能调优”和“故障排查”的部分,这正是我们日常工作中最为头疼的问题。我期待能够从书中学习到一些高级的调优技巧,比如如何深入分析慢查询日志、如何理解和调整各种MySQL参数、如何进行合理的索引设计等。此外,书中关于“高可用性”和“分布式架构”的探讨,也让我眼前一亮,这对于构建大型、复杂的系统至关重要。我希望通过阅读这本书,能够系统地掌握MySQL的各个方面,提升自己在数据库管理和优化方面的专业能力,从而更好地服务于我的工作项目。
我是一名在创业公司担任技术负责人的朋友,我们公司目前正处于快速发展阶段,用户量和数据量都在迅速增长。在这种情况下,数据库的扩展性和性能就成了我们面临的严峻挑战。之前,我们一直依赖于一些基础的MySQL配置和简单的优化方法,但随着业务的扩张,这些方法已经显得捉襟见肘。因此,我迫切需要一本能够帮助我提升MySQL管理水平、解决大规模数据处理和高并发访问问题的书籍。《MySQL管理之道(第2版)》这本书,从其内容介绍来看,非常符合我的需求。我尤其看重书中关于“数据库架构设计”、“复制与集群”、“负载均衡”以及“性能监控与调优”等章节。我希望能够从中学习到如何设计一个能够应对未来增长的数据库架构,如何实现高可用性和读写分离,以及如何通过细致的参数调优和SQL优化来榨干MySQL的每一分性能。这本书的出现,无疑为我们公司解决当前的瓶颈问题提供了重要的理论指导和实践参考。
书不错,简练有干货
还不错啊,快速了解了MySql 5.7的很多新特性
查漏补缺~
查漏补缺~
侧重实践吧,理论知识算是 查缺补漏,ps 应该买电子版的。。。