MySQL管理之道:性能调优、高可用与监控

MySQL管理之道:性能调优、高可用与监控

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
7.320 评价豆瓣读书
免费试读
¥25.00¥12.00
今日特价截止至:2019-07-23 02:00:00了解详情

作品简介

《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护mysql服务器。

书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员、dba等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本书适合所有希望构建和管理高性能、高可用性的mysql数据库系统的开发者和dba阅读。

贺春旸 从事数据库管理工作多年,有管理和维护高并发海量数据的经验,曾经任职于中国移动飞信、国内某知名电商,致力于MySQL、Linux等开源技术的研究,在51CTO博客上公开发表数据库文章上百篇,现任职于机锋安卓市场,负责MySQL性能调优和架构设计。

作品目录

  1. 前言
  2. 为什么要写这本书
  3. 读者对象
  4. 如何阅读本书
  5. 勘误和支持
  6. 致谢
  7. 第一部分 MySQL5.5新特性篇
  8. 第1章 MySQL5.5介绍
  9. 1.1 性能上的显著改变
  10. 1.1.1 MySQL5.5默认存储引擎的调整
  11. 1.1.2 充分利用CPU多核的处理能力
  12. 1.1.3 提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力
  13. 1.1.4 增加自适应刷新脏页功能
  14. 1.1.5 让InnoDB_Buffer_Pool缓冲池中的热数据存活更久
  15. 1.1.6 InnoDB的数据恢复时间加快
  16. 1.1.7 InnoDB同时支持多个BufferPool实例
  17. 1.1.8 可关闭自适应哈希索引
  18. 1.1.9 在InnoDB中可选择使用内存分配程序
  19. 1.1.10 提高默认InnoDB线程并发数
  20. 1.1.11 预读算法的变化
  21. 1.1.12 首次在Linux上实现了异步I/O
  22. 1.1.13 恢复组提交
  23. 1.1.14 InnoDB使用多个回滚段提升性能
  24. 1.1.15 改善清除程序进度
  25. 1.1.16 添加删除缓冲和清除缓冲
  26. 1.1.17 控制自旋锁Spin Lock轮训间隔
  27. 1.1.18 快速创建、删除、更改索引
  28. 1.1.19 InnoDB支持创建压缩数据页
  29. 1.1.20 可动态关闭InnoDB更新元数据的统计功能
  30. 1.2 安全性、稳定性的显著改变
  31. 1.2.1 复制功能加强
  32. 1.2.2 中继日志relay-log可自我修复
  33. 1.2.3 开启InnoDB严格检查模式
  34. 1.3 动态更改系统配置参数
  35. 1.3.1 支持动态更改独立表空间
  36. 1.3.2 支持动态更改InnoDB锁超时时间
  37. 1.4 InnoDB新参数汇总
  38. 1.5 同步复制新参数汇总
  39. 1.6 SQL语句写法的改变
  40. 1.6.1 delete表连接语法改变
  41. 1.6.2 MySQL5.5存储过程支持limit变量
  42. 1.7 MySQL5.1升级为MySQL5.5
  43. 1.7.1 采用MySQL_upgrade升级授权表方式升级
  44. 1.7.2 直接安装MySQL5.5,采用数据导出/导入方式升级
  45. 1.8 性能测试:MySQL5.5与MySQL5.1
  46. 第2章 半同步复制
  47. 2.1 半同步复制简介
  48. 2.2 半同步复制安装配置
  49. 2.3 参数说明
  50. 2.4 功能测试
  51. 2.4.1 如何验证半同步复制是否正常工作
  52. 2.4.2 半同步复制与异步复制的切换
  53. 2.5 性能测试
  54. 2.6 小结
  55. 第二部分 故障诊断与性能优化篇
  56. 第3章 故障诊断
  57. 3.1 影响MySQL性能的因素
  58. 3.2 系统性能评估标准
  59. 3.2.1 影响Linux服务器性能的因素
  60. 3.2.2 系统性能评估指标
  61. 3.2.3 开源监控和评估工具介绍
  62. 3.3 故障与处理
  63. 3.3.1 连接数过多导致程序连接报错的原因
  64. 3.3.2 记录子查询引起的宕机
  65. 3.3.3 诊断事务量突高的原因
  66. 3.3.4 谨慎设置binlog_format=MIXED
  67. 3.3.5 未设置swap分区导致内存耗尽,主机死机
  68. 3.3.6 MySQL故障切换之事件调度器注意事项
  69. 3.3.7 人工误删除InnoDB ibdata数据文件,如何恢复
  70. 3.3.8 update忘加where条件误操作恢复(模拟Oracle闪回功能)
  71. 3.3.9 delete忘加where条件误操作恢复(模拟Oracle闪回功能)
  72. 第4章 同步复制报错故障处理
  73. 4.1 最常见的3种故障
  74. 4.1.1 在master上删除一条记录时出现的故障
  75. 4.1.2 主键重复
  76. 4.1.3 在master上更新一条记录,而slave上却找不到
  77. 4.2 特殊情况:slave的中继日志relay-log损坏
  78. 4.3 人为失误
  79. 4.4 避免在master上执行大事务
  80. 4.5 slave_exec_mode参数可自动处理同步复制错误
  81. 4.6 如何验证主从数据一致
  82. 4.7 binlog_ignore_db引起的同步复制故障
  83. 4.8 MySQL5.5.19/20同步一个Bug
  84. 4.9 恢复slave从机上的某几张表的简要方法
  85. 4.10 如何干净地清除slave同步信息
  86. 第5章 性能调优
  87. 5.1 表设计
  88. 5.2 字段类型的选取
  89. 5.2.1 数值类型
  90. 5.2.2 字符类型
  91. 5.2.3 时间类型
  92. 5.2.4 小技巧:快速修改表结构
  93. 5.2.5 pt-online-schema-change在线更改表结构
  94. 5.2.6 MySQL5.6在线DDL更改表测试
  95. 5.3 采用合适的锁机制
  96. 5.3.1 表锁的演示
  97. 5.3.2 行锁的演示
  98. 5.3.3 InnoDB引擎与MyISAM引擎的性能对比
  99. 5.4 选择合适的事务隔离级别
  100. 5.4.1 事务的概念
  101. 5.4.2 事务的实现
  102. 5.4.3 事务隔离级别介绍
  103. 5.5 SQL优化与合理利用索引
  104. 5.5.1 如何定位执行很慢的SQL语句
  105. 5.5.2 SQL优化案例分析
  106. 5.5.3 合理使用索引
  107. 5.6 my.cnf配置文件调优
  108. 5.6.1 per_thread_buffers优化
  109. 5.6.2 global_buffers优化
  110. 5.6.3 Query Cache在不同环境下的使用
  111. 5.6.4 tuning-primer.sh性能调试工具的使用
  112. 5.6.5 72GB内存的my.cnf配置文件
  113. 5.6.6 谨慎使用分区表功能
  114. 5.7 MySQL5.6同步复制新特性详解
  115. 第6章 备份与恢复
  116. 6.1 冷备份
  117. 6.2 逻辑备份
  118. 6.2.1 mysqldump增加了一个重要参数
  119. 6.2.2 取代mysqldump的新工具mydumper
  120. 6.2.3 逻辑备份全量、增量备份脚本
  121. 6.3 热备份与恢复
  122. 第三部分 高可用集群管理篇
  123. 第7章 目前流行的4种高可用架构
  124. 7.1 采用MySQL自带的Replication架构
  125. 7.1.1 Keepalived+MySQL Replication架构的搭建演示
  126. 7.1.2 MMM+MySQL Replication架构的搭建演示
  127. 7.2 Heartbeat+DRBD+MySQL架构的搭建演示
  128. 7.3 红帽RHCS共享存储架构的搭建演示
  129. 7.3.1 安装过程
  130. 7.3.2 红帽RHCS集群的维护
  131. 7.4 MySQL高可用集群HA解决方案的测试评估
  132. 第8章 批量管理服务器
  133. 8.1 开源工具pssh的使用方法
  134. 8.2 自己编写的SSH服务器批量管理工具
  135. 第四部分 监控篇
  136. 第9章 性能监控
  137. 第10章 服务监控
  138. 10.1 Nagios搭建与维护
  139. 10.2 MySQL数据库的监控脚本
  140. 第五部分 项目案例
  141. 第11章 项目案例讲解
  142. 11.1 数据碎片整理方案
  143. 11.2 用户信息表水平拆表方案
  144. 11.3 阿里巴巴中间件Cobar水平拆表方案
载入中

热门划线

  1. 二进制日志有两个作用,一是恢复数据,比如,早上9点误删除了一张表,那么可以通过凌晨的全量备份,加上凌晨到9点之前的二进制日志文件做增量恢复。二是实现MySQL的主从复制。4 人
  2. 针对读写很频繁的情况,16KB目前是性能比较好的。4 人
  3. innodb_lock_wait_timeout来解决3 人
  4. ❑幻读(Phantom Reads):事务在操作过程中进行两次查询,第二次查询的结果包含了第一次查询中未出现的数据(这里并不要求两次查询的SQL语句相同)。这是因为在两次查询过程中有另外一个事务插入数据。3 人
  5. 在MySQL里,like ‘xxx%’可以用到索引,但like ‘%xxx%’却不行。3 人
  6. 虽然上述方法加快了速度,但类似统计的SQL语句(如select count(*)总数、select sum()求和)千万不要在主库上执行。因为生产环境数据库是InnoDB引擎(OLTP联机事务处理),它不像MyISAM引擎(OLAP联机分析处理)那样内置了一个计数器,可在使用select count(*) from table的时候,直接从计数器中取出数据。InnoDB必须要全表扫描一次方能得到总的数量,且会锁表(表级锁,不是行锁),当数据达到千万级别时,速度会很慢,一个SQL就让数据库挂掉。3 人
  7. MySQL中有一种非常高效的主键冲突处理判断,冲突则执行update,不冲突则执行insert逻辑的语句:ON DUPLICATE KEY UPDATE,3 人
  8. 如果数据库的读操作比写操作多,那么可以设置:2 人
  9. innodb_adaptive_flushing2 人
  10. ,如果缓冲区里有相应的数据则直接返回,否则会从磁盘读入缓冲区的sublist of old blocks区域,然后再移动到sublist of new blocks区域,并通过LRU最近最少使用算法来踢出旧数据页。2 人

喜欢这本书的人也喜欢