MySQL性能调优与架构设计

MySQL性能调优与架构设计

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.1561 评价豆瓣读书

作品简介

本书以 MySQL 数据库的基础及维护(基础篇)为切入点,重点介绍了 MySQL 数据库应用系统的性能调优(优化篇),以及高可用可扩展的架构设计(架构篇)。

基础篇的主要内容有:MySQL 数据库介绍,架构组成,存储引擎介绍、安全管理,以及基本的备份恢复知识。

优化篇则从影响 MySQL 数据库应用系统性能的因素开始,对各个因素进行调优分析。包括Schema 设计,Query 语句的性能优化, MySQL Server 中SQL层和存储引擎层的优化思路,以及MySQL 数据库锁定机制的实现。

架构篇则以设计一个高可用可扩展的企业级分布式数据库集群环境为目标,分析了多种通过 MySQL 实现这一目标的架构方式,包括可扩展设计和高可用设计两部分内容,如 Replication 的利用,数据切分,Cache 和 Search 的利用,NDB Cluster ,以及系统监控等。

简朝阳,毕业于南京工业大学管理科学与工程学院,管理学学士。擅长MySQL & Oracle数据库应用系统的性能调优与高可用可扩展架构设计,有一定的Java 和C语言基础。目前就职于阿里巴巴(中国)网络技术有限公司,曾参与过公司多个核心数据库应用系统的设计与实施,目前主要负责 MySQL 数据库应用系统的架构设计与相关维护工作。活跃于 iMySQLer 数据库论坛(http://imysqler.com) 和 MySQL 邮件组(mysqler@googlegroups.com, http://groups.google.com/group/mysqler),欢迎大家以 Open 的心态一起分享 MySQL 数据库方面的经验心得。

作品目录

  1. 推荐序一
  2. 推荐序二
  3. 推荐序三
  4. 推荐序四
  5. 推荐序五
  6. 推荐序六
  7. 序 言
  8. 第1章 MySQL基本介绍
  9. 1.0 引言
  10. 1.1 MySQL Server简介
  11. 1.1.1 什么是MySQL
  12. 1.1.2 艰难诞生
  13. 1.1.3 寻求发展
  14. 1.1.4 巨人崛起
  15. 1.2 MySQL与其他数据库的简单比较
  16. 1.2.1 功能比较
  17. 1.2.2 易用性比较
  18. 1.2.3 性能比较
  19. 1.2.4 可靠性
  20. 1.3 MySQL 的主要适用场景
  21. 1.4 小结
  22. 第2章 MySQL架构组成
  23. 2.0 引言
  24. 2.1 MySQL物理文件组成
  25. 2.1.1 日志文件
  26. 2.1.2 数据文件
  27. 2.1.3 Replication相关文件
  28. 2.1.4 其他文件
  29. 2.2 MySQL Server系统架构
  30. 2.2.1 逻辑模块组成
  31. 2.2.2 各模块工作配合
  32. 2.3 MySQL 自带工具使用介绍
  33. 2.4 小结
  34. 第3章 MySQL存储引擎简介
  35. 3.0 引言
  36. 3.1 MySQL存储引擎概述
  37. 3.2 MyISAM存储引擎简介
  38. 3.3 InnoDB存储引擎简介
  39. 3.4 NDB Cluster 存储引擎简介
  40. 3.5 其他存储引擎介绍
  41. 3.5.1 Merge存储引擎
  42. 3.5.2 Memory存储引擎
  43. 3.5.3 BDB 存储引擎
  44. 3.5.4 FEDERATED存储引擎
  45. 3.5.5 ARCHIVE存储引擎
  46. 3.5.6 BLACKHOLE存储引擎
  47. 3.5.7 CSV存储引擎
  48. 3.6 小结
  49. 第4章 MySQL安全管理
  50. 4.0 引言
  51. 4.1 数据库系统安全相关因素
  52. 4.1.1 外围网络
  53. 4.1.2 主机
  54. 4.1.3 数据库
  55. 4.1.4 代码
  56. 4.2 MySQL 权限系统介绍
  57. 4.2.1 权限系统简介
  58. 4.2.2 权限授予与去除
  59. 4.2.3 权限级别
  60. 4.2.4 MySQL访问控制实现原理
  61. 4.3 MySQL 访问授权策略
  62. 4.4 安全设置注意事项
  63. 4.5 小结
  64. 第5章 MySQL备份与恢复
  65. 5.0 引言
  66. 5.1 数据库备份使用场景
  67. 5.2 逻辑备份与恢复测试
  68. 5.2.1 什么是数据库逻辑备份?
  69. 5.2.2 常用的逻辑备份
  70. 5.2.3 逻辑备份恢复方法
  71. 5.2.4 逻辑备份恢复测试
  72. 5.3 物理备份与恢复测试
  73. 5.3.1 什么是数据库物理备份
  74. 5.3.2 MySQL物理备份所需文件
  75. 5.3.3 各存储引擎常用物理备份方法
  76. 5.3.4 各存储引擎常用物理备份的恢复方法
  77. 5.4 备份策略的设计思路
  78. 5.5 小结
  79. 第6章 影响MySQL Server性能的相关因素
  80. 6.0 引言
  81. 6.1 商业需求对性能的影响
  82. 6.1.1 不合理的需求造成资源投入产出比过低
  83. 6.1.2 无用功能堆积使系统过度复杂,影响整体性能
  84. 6.2 系统架构及实现对性能的影响
  85. 6.2.1 数据库中存放的数据都适合在此存放吗?
  86. 6.2.2 是否合理地利用了应用层Cache机制?
  87. 6.2.3 数据层实现都是最精简的吗?
  88. 6.2.4 过度依赖数据库Query语句的功能造成数据库操作效率低下
  89. 6.2.5 重复执行相同的Query造成资源浪费
  90. 6.3 Query语句对系统性能的影响
  91. 6.4 Schema设计对系统的性能影响
  92. 6.5 硬件环境对系统性能的影响
  93. 6.6 小结
  94. 第7章 MySQL数据库锁定机制
  95. 7.0 引言
  96. 7.1 MySQL锁定机制简介
  97. 7.2 各种锁定机制分析
  98. 7.2.1 表级锁定
  99. 7.2.2 读锁定
  100. 7.2.3 写锁定
  101. 7.2.4 行级锁定
  102. 7.3 合理利用锁机制优化MySQL
  103. 7.3.1 MyISAM表锁优化建议
  104. 7.3.2 InnoDB行锁优化建议
  105. 7.3.3 系统锁定争用情况查询
  106. 7.4 小结
  107. 第8章 MySQL数据库Query的优化
  108. 8.0 引言
  109. 8.1 理解MySQL的Query Optimizer
  110. 8.1.1 MySQL Query Optimizer是什么?
  111. 8.1.2 MySQL Query Optimizer基本工作原理
  112. 8.2 Query 语句优化基本思路和原则
  113. 8.3 充分利用 Explain 和 Profiling
  114. 8.3.1 Explain 的使用
  115. 8.3.2 Profiling 的使用
  116. 8.4 合理设计并利用索引
  117. 8.4.1 B-Tree 索引
  118. 8.4.2 Hash 索引
  119. 8.4.3 Full-text 索引
  120. 8.4.4 R-Tree 索引
  121. 8.4.5 索引的利弊与如何判定,是否需要索引
  122. 8.4.6 单键索引还是组合索引
  123. 8.4.7 Query 的索引选择
  124. 8.4.8 MySQL中索引的限制
  125. 8.5 Join的实现原理及优化思路
  126. 8.5.1 Join 的实现原理
  127. 8.5.2 Join 语句的优化
  128. 8.6 ORDER BY、GROUP BY和DISTINCT的优化
  129. 8.6.1 ORDER BY的实现与优化
  130. 8.6.2 GROUP BY 的实现与优化
  131. 8.6.3 DISTINCT 的实现与优化
  132. 8.7 小结
  133. 第9章 MySQL数据库Schema
  134. 9.0 引言
  135. 9.1 高效的模型设计
  136. 9.1.1 适度冗余——让Query尽量减少Join
  137. 9.1.2 大字段垂直分拆——summary表优化
  138. 9.1.3 大表水平分拆——基于类型的分拆优化
  139. 9.2 合适的数据类型
  140. 9.2.1 数字日期类型
  141. 9.2.2 字符存储类型
  142. 9.2.3 其他常用类型
  143. 9.3 规范的对象命名
  144. 9.4 小结
  145. 第10章 MySQL Server性能优化
  146. 10.0 引言
  147. 10.1 MySQL安装优化
  148. 10.1.1 选择合适的发行版本
  149. 10.2 MySQL日志设置优化
  150. 10.2.1 日志产生的性能影响
  151. 10.2.2 二进制日志(Binlog)相关参数及优化策略
  152. 10.2.3 慢查询日志(Slow Query Log)相关参数及使用建议
  153. 10.3 Query Cache 优化
  154. 10.3.1 适度使用Query Cache
  155. 10.3.2 Query Cache的相关系统参数变量和状态变量
  156. 10.3.3 Query Cache的限制
  157. 10.4 MySQL Server 其他常用优化
  158. 10.4.1 网络连接与连接线程
  159. 10.4.2 Table Cache相关的优化
  160. 10.4.3 Sort Buffer、Join Buffer和Read Buffer
  161. 10.5 小结
  162. 第11章 常用存储引擎优化
  163. 11.0 引言
  164. 11.1 MyISAM存储引擎优化
  165. 11.1.1 索引缓存优化
  166. 11.1.2 多Key Cache的使用
  167. 11.1.3 Key Cache的Mutex问题
  168. 11.1.4 Key Cache预加载
  169. 11.1.5 NULL值对统计信息的影响
  170. 11.1.6 表读取缓存优化
  171. 11.1.7 并发优化
  172. 11.1.8 其他可以优化的地方
  173. 11.2 InnoDB 存储引擎优化
  174. 11.2.1 InnoDB缓存相关优化
  175. 11.2.2 事务优化
  176. 11.2.3 数据存储优化
  177. 11.2.4 Innodb其他优化
  178. 11.2.5 Innodb性能监控
  179. 11.3 小结
  180. 第12章 MySQL可扩展设计的基本原则
  181. 12.0 引言
  182. 12.1 什么是可扩展性
  183. 12.2 事务相关性最小化原则
  184. 12.3 数据一致性原则
  185. 12.4 高可用及数据安全原则
  186. 12.5 小结
  187. 第13章 可扩展性设计之
  188. 13.0 引言
  189. 13.1 Replication 对可扩展性设计的意义
  190. 13.2 Replication 机制的实现原理
  191. 13.2.1 Replication 线程
  192. 13.2.2 复制实现级别
  193. 13.3 Replication常用架构
  194. 13.3.1 常规复制架构(Master - Slaves)
  195. 13.3.2 Dual Master复制架构(Master - Master)
  196. 13.3.3 级联复制架构(Master - Slaves - Slaves ...)
  197. 13.3.4 Dual Master 与级联复制结合架构(Master - Master - Slaves)
  198. 13.4 Replication搭建实现
  199. 13.5 小结
  200. 第14章 可扩展性设计之数据切分
  201. 14.0 引言
  202. 14.1 何谓数据切分
  203. 14.2 数据的垂直切分
  204. 14.3 数据的水平切分
  205. 14.4 垂直与水平联合切分的使用
  206. 14.5 数据切分及整合方案
  207. 14.6 数据切分与整合中可能存在的问题
  208. 14.7 小结
  209. 第15章 可扩展性设计之
  210. 15.0 引言
  211. 15.1 可扩展设计的数据库之外延伸
  212. 15.2 合理利用第三方Cache解决方案
  213. 15.2.1 分布式内存 Cache 软件 Memcached
  214. 15.2.2 嵌入式数据库编程库 Berkeley DB
  215. 15.3 自行实现Cache服务
  216. 15.4 利用Search实现高效的全文检索
  217. 15.5 利用分布式并行计算实现大数据量的高性能运算
  218. 15.6 小结
  219. 第16章 MySQL Cluster
  220. 16.0 引言
  221. 16.1 MySQL Cluster介绍
  222. 16.2 MySQL Cluster环境搭建
  223. 16.3 MySQL Cluster配置详细介绍(config.ini)
  224. 16.4 MySQL Cluster基本管理与维护
  225. 16.5 基本优化思路
  226. 16.6 小结
  227. 第17章 高可用设计思路及方案
  228. 17.0 引言
  229. 17.1 利用 Replication 来实现高可用架构
  230. 17.1.1 用常规Master-Slave架构实现基本主备设计
  231. 17.1.2 Master单点问题的解决
  232. 17.1.3 Dual Master 与级联复制结合解决异常故障下的高可用
  233. 17.1.4 Dual Master与级联复制结合解决在线DDL变更问题
  234. 17.2 利用MySQL Cluster实现整体高可用
  235. 17.2.1 SQL 节点的高可靠性保证
  236. 17.2.2 NDB 节点的高可靠性保证
  237. 17.3 利用DRBD保证数据的高安全可靠
  238. 17.3.1 DRBD介绍
  239. 17.3.2 DRBD 特性与限制
  240. 17.4 其他高可用设计方案
  241. 17.5 各种高可用方案的利弊比较
  242. 17.6 小结
  243. 第18章 高可用设计之MySQL监控
  244. 18.0 引言
  245. 18.1 监控系统设计
  246. 18.2 健康状态监控
  247. 18.2.1 主机健康状态监控
  248. 18.2.2 数据库健康状态信息
  249. 18.3 性能状态监控
  250. 18.3.1 主机性能状态
  251. 18.3.2 数据库性能状态
  252. 18.4 常用开源监控软件
  253. 18.5 小结
  254. 附录A 实验测试 Schema 创建脚本
  255. 附录B MySQL部分系统
  256. 附录C MySQL部分状态说明
载入中