当前位置:主页 > 计算机电子书 > 数据库 > MySQL下载
高性能MySQL

高性能MySQL PDF 超清版

  • 更新:2019-11-18
  • 大小:392 MB
  • 类别:MySQL
  • 作者:施瓦茨,扎伊采夫,特卡琴科,宁海元,周振
  • 出版:电子工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

如果你害怕以MySQL权威专家自恃,又岂敢错过了这部神书?
一言以蔽之,读得好,编辑得好,必须参照时非常容易到爆!
我但是从头至尾看过一遍上一版,可還是直截了当拿出了这部《高性能MySQL(第3版)》,并且看了后一点都我不后悔……
◎ 学习培训MySQL新特性,包含储存模块、系统分区数据库、触发器和景图
◎ 保持拷贝的改善、高可用性和集群服务器◎ 得到云端运作MySQL的高性能
◎ 提升高级查询特性,如全文索引
◎ 从当代的多核CPU和固态盘中获利
◎ 探寻备份和恢复的对策,包含*的免费在线备份工具

高性能MySQL(第3版)》是MySQL 行业的极好之作,有着普遍的知名度。第3 版升级了很多的內容,不仅包含了新的MySQL5.5版本号的新特性,也叙述了有关固态盘、高可扩展性设计方案和云计算环境下的数据库有关的新內容,原来的标准检测和性能提升一部分也干了很多的拓展和填补。本书共分成16章和6 个附则,内容包括MySQL构架和历史时间,标准检测和性能分析,数据库硬件软件性能提升,拷贝、备份和恢复,高可用性与高可扩展性,及其云空间的MySQL和MySQL有关专用工具等层面的內容。每一章全是相对性单独的主题风格,用户能够有可选择性地独立阅读文章。

《高性能MySQL(第3版)》不仅合适数据库管理人员(DBA)阅读文章,也合适开发者参照学习培训。无论是数据库初学者還是权威专家,坚信都能从这书有一定的获得。

目录

  • 第1章 MySQL 架构与历史
  • 1.1 MySQL 逻辑架构
  • 1.1.1 连接管理与安全性
  • 1.1.2 优化与执行
  • 1.2 并发控制
  • 1.2.1 读写锁
  • 1.2.2 锁粒度
  • 1.3 事务
  • 1.3.1 隔离级别
  • 1.3.2 死锁
  • 1.3.3 事务日志
  • 1.3.4 MySQL 中的事务
  • 1.4 多版本并发控制
  • 1.5 MySQL 的存储引擎
  • 1.5.1 InnoDB 存储引擎
  • 1.5.2 MyISAM 存储引擎
  • 1.5.3 MySQL 内建的其他存储引擎
  • 1.5.4 第三方存储引擎
  • 1.5.5 选择合适的引擎
  • 1.5.6 转换表的引擎
  • 1.6 MySQL 时间线(Timeline)
  • 1.7 MySQL 的开发模式
  • 1.8 总结
  • 第2章 MySQL 基准测试
  • 2.1 为什么需要基准测试
  • 2.2 基准测试的策略
  • 2.2.1 测试何种指标
  • 2.3 基准测试方法
  • 2.3.1 设计和规划基准测试
  • 2.3.2 基准测试应该运行多长时间
  • 2.3.3 获取系统性能和状态
  • 2.3.4 获得准确的测试结果
  • 2.3.5 运行基准测试并分析结果
  • 2.3.6 绘图的重要性
  • 2.4 基准测试工具
  • 2.4.1 集成式测试工具
  • 2.4.2 单组件式测试工具
  • 2.5 基准测试案例
  • 2.5.1 http_load
  • 2.5.2 MySQL 基准测试套件 .
  • 2.5.3 sysbench
  • 2.5.4 数据库测试套件中的dbt2 TPC-C 测试
  • 2.5.5 Percona 的TPCC-MySQL 测试工具
  • 2.6 总结
  • 第3章 服务器性能剖析
  • 3.1 性能优化简介
  • 3.1.1 通过性能剖析进行优化
  • 3.1.2 理解性能剖析
  • 3.2 对应用程序进行性能剖析
  • 3.2.1 测量PHP 应用程序
  • 3.3 剖析MySQL 查询
  • 3.3.1 剖析服务器负载
  • 3.3.2 剖析单条查询
  • 3.3.3 使用性能剖析
  • 3.4 诊断间歇性问题
  • 3.4.1 单条查询问题还是服务器问题
  • 3.4.2 捕获诊断数据
  • 3.4.3 一个诊断案例
  • 3.5 其他剖析工具
  • 3.5.1 使用USER_STATISTICS 表
  • 3.5.2 使用strace
  • 3.6 总结
  • 第4章 Schema 与数据类型优化
  • 4.1 选择优化的数据类型
  • 4.1.1 整数类型
  • 4.1.2 实数类型
  • 4.1.3 字符串类型
  • 4.1.4 日期和时间类型
  • 4.1.5 位数据类型
  • 4.1.6 选择标识符(identifier)
  • 4.1.7 特殊类型数据
  • 4.2 MySQL schema 设计中的陷阱
  • 4.3 范式和反范式
  • 4.3.1 范式的优点和缺点
  • 4.3.2 反范式的优点和缺点 .
  • 4.3.3 混用范式化和反范式化
  • 4.4 缓存表和汇总表
  • 4.4.1 物化视图
  • 4.4.2 计数器表
  • 4.5 加快ALTER TABLE 操作的速度
  • 4.5.1 只修改.frm 文件
  • 4.5.2 快速创建MyISAM 索引
  • 4.6 总结
  • 第5章 创建高性能的索引
  • 5.1 索引基础
  • 5.1.1 索引的类型
  • 5.2 索引的优点
  • 5.3 高性能的索引策略
  • 5.3.1 独立的列
  • 5.3.2 前缀索引和索引选择性
  • 5.3.3 多列索引
  • 5.3.4 选择合适的索引列顺序
  • 5.3.5 聚簇索引
  • 5.3.6 覆盖索引
  • 5.3.7 使用索引扫描来做排序
  • 5.3.8 压缩(前缀压缩)索引
  • 5.3.9 冗余和重复索引
  • 5.3.10 未使用的索引
  • 5.3.11 索引和锁
  • 5.4 索引案例学习
  • 5.4.1 支持多种过滤条件
  • 5.4.2 避免多个范围条件
  • 5.4.3 优化排序
  • 5.5 维护索引和表
  • 5.5.1 找到并修复损坏的表 .
  • 5.5.2 更新索引统计信息
  • 5.5.3 减少索引和数据的碎片
  • 5.6 总结
  • 第6章 查询性能优化
  • 6.1 为什么查询速度会慢
  • 6.2 慢查询基础:优化数据访问
  • 6.2.1 是否向服务器请求了不需要的数据
  • 6.2.2 MySQL 是否在扫描额外的记录
  • 6.3 重构查询的方式
  • 6.3.1 一个复杂查询还是多个简单查询
  • 6.3.2 切分查询
  • 6.3.3 分解关联查询
  • 6.4 查询执行的基础
  • 6.4.1 MySQL 客户端/ 服务器通信协议
  • 6.4.2 查询缓存
  • 6.4.3 查询优化处理
  • 6.4.4 查询执行引擎
  • 6.4.5 返回结果给客户端
  • 6.5 MySQL 查询优化器的局限性
  • 6.5.1 关联子查询
  • 6.5.2 UNION 的限制
  • 6.5.3 索引合并优化
  • 6.5.4 等值传递
  • 6.5.5 并行执行
  • 6.5.6 哈希关联
  • 6.5.7 松散索引扫描
  • 6.5.8 最大值和最小值优化 .
  • 6.5.9 在同一个表上查询和更新
  • 6.6 查询优化器的提示(hint)
  • 6.7 优化特定类型的查询
  • 6.7.1 优化COUNT() 查询
  • 6.7.2 优化关联查询
  • 6.7.3 优化子查询
  • 6.7.4 优化GROUP BY 和DISTINCT
  • 6.7.5 优化LIMIT 分页
  • 6.7.6 优化SQL_CALC_FOUND_ROWS
  • 6.7.7 优化UNION 查询
  • 6.7.8 静态查询分析
  • 6.7.9 使用用户自定义变量 .
  • 6.8 案例学习
  • 6.8.1 使用MySQL 构建一个队列表
  • 6.8.2 计算两点之间的距离 .
  • 6.8.3 使用用户自定义函数 .
  • 6.9 总结
  • 第7章 MySQL 高级特性
  • 7.1 分区表
  • 7.1.1 分区表的原理
  • 7.1.2 分区表的类型
  • 7.1.3 如何使用分区表
  • 7.1.4 什么情况下会出问题 .
  • 7.1.5 查询优化
  • 7.1.6 合并表
  • 7.2 视图
  • 7.2.1 可更新视图
  • 7.2.2 视图对性能的影响
  • 7.2.3 视图的限制
  • 7.3 外键约束
  • 7.4 在MySQL 内部存储代码
  • 7.4.1 存储过程和函数
  • 7.4.2 触发器
  • 7.4.3 事件
  • 7.4.4 在存储程序中保留注释
  • 7.5 游标
  • 7.6 绑定变量
  • 7.6.1 绑定变量的优化
  • 7.6.2 SQL 接口的绑定变量
  • 7.6.3 绑定变量的限制
  • 7.7 用户自定义函数
  • 7.8 插件
  • 7.9 字符集和校对
  • 7.9.1 MySQL 如何使用字符集
  • 7.9.2 选择字符集和校对规则
  • 7.9.3 字符集和校对规则如何影响查询
  • 7.10 全文索引
  • 7.10.1 自然语言的全文索引
  • 7.10.2 布尔全文索引
  • 7.10.3 MySQL5.1 中全文索引的变化
  • 7.10.4 全文索引的限制和替代方案
  • 7.10.5 全文索引的配置和优化
  • 7.11 分布式(XA)事务
  • 7.11.1 内部XA 事务
  • 7.11.2 外部XA 事务
  • 7.12 查询缓存
  • 7.12.1 MySQL 如何判断缓存命中
  • 7.12.2 查询缓存如何使用内存
  • 7.12.3 什么情况下查询缓存能发挥作用
  • 7.12.4 如何配置和维护查询缓存
  • 7.12.5 InnoDB 和查询缓存 .
  • 7.12.6 通用查询缓存优化
  • 7.12.7 查询缓存的替代方案
  • 7.13 总结
  • 第8章 优化服务器设置
  • 8.1 MySQL 配置的工作原理
  • 8.1.1 语法、作用域和动态性
  • 8.1.2 设置变量的副作用
  • 8.1.3 入门
  • 8.1.4 通过基准测试迭代优化
  • 8.2 什么不该做
  • 8.3 创建MySQL 配置文件
  • 8.3.1 检查MySQL 服务器状态变量
  • 8.4 配置内存使用
  • 8.4.1 MySQL 可以使用多少内存?
  • 8.4.2 每个连接需要的内存 .
  • 8.4.3 为操作系统保留内存 .
  • 8.4.4 为缓存分配内存
  • 8.4.5 InnoDB 缓冲池(Buffer Pool)
  • 8.4.6 MyISAM 键缓存(Key Caches)
  • 8.4.7 线程缓存
  • 8.4.8 表缓存(Table Cache)
  • 8.4.9 InnoDB 数据字典(Data Dictionary)
  • 8.5 配置MySQL 的I/O 行为
  • 8.5.1 InnoDB I/O 配置
  • 8.5.2 MyISAM 的I/O 配置 .
  • 8.6 配置MySQL 并发 .
  • 8.6.1 InnoDB 并发配置
  • 8.6.2 MyISAM 并发配置
  • 8.7 基于工作负载的配置
  • 8.7.1 优化BLOB 和TEXT 的场景
  • 8.7.2 优化排序(Filesorts).
  • 8.8 完成基本配置
  • 8.9 安全和稳定的设置
  • 8.10 高级InnoDB 设置
  • 8.11 总结
  • 第9章 操作系统和硬件优化
  • 9.1 什么限制了MySQL 的性能
  • 9.2 如何为MySQL 选择CPU
  • 9.2.1 哪个更好:更快的CPU 还是更多的CPU
  • 9.2.2 CPU 架构
  • 9.2.3 扩展到多个CPU 和核心
  • 9.3 平衡内存和磁盘资源
  • 9.3.1 随机I/O 和顺序I/O
  • 9.3.2 缓存,读和写
  • 9.3.3 工作集是什么
  • 9.3.4 找到有效的内存/ 磁盘比例
  • 9.3.5 选择硬盘
  • 9.4 固态存储
  • 9.4.1 闪存概述
  • 9.4.2 闪存技术
  • 9.4.3 闪存的基准测试
  • 9.4.4 固态硬盘驱动器(SSD)
  • 9.4.5 PCIe 存储设备
  • 9.4.6 其他类型的固态存储 .
  • 9.4.7 什么时候应该使用闪存
  • 9.4.8 使用Flashcache
  • 9.4.9 优化固态存储上的MySQL
  • 9.5 为备库选择硬件
  • 9.6 RAID 性能优化
  • 9.6.1 RAID 的故障转移、恢复和镜像
  • 9.6.2 平衡硬件RAID 和软件RAID
  • 9.6.3 RAID 配置和缓存
  • 9.7 SAN 和NAS
  • 9.7.1 SAN 基准测试
  • 9.7.2 使用基于NFS 或SMB 的SAN
  • 9.7.3 MySQL 在SAN 上的性能
  • 9.7.4 应该用SAN 吗
  • 9.8 使用多磁盘卷
  • 9.9 网络配置
  • 9.10 选择操作系统
  • 9.11 选择文件系统
  • 9.12 选择磁盘队列调度策略
  • 9.13 线程
  • 9.14 内存交换区
  • 9.15 操作系统状态
  • 9.15.1 如何阅读vmstat 的输出
  • 9.15.2 如何阅读iostat 的输出
  • 9.15.3 其他有用的工具
  • 9.15.4 CPU 密集型的机器
  • 9.15.5 I/O 密集型的机器
  • 9.15.6 发生内存交换的机器
  • 9.15.7 空闲的机器
  • 9.16 总结
  • 第10章 复制
  • 10.1 复制概述
  • 10.1.1 复制解决的问题
  • 10.1.2 复制如何工作
  • 10.2 配置复制
  • 10.2.1 创建复制账号
  • 10.2.2 配置主库和备库
  • 10.2.3 启动复制
  • 10.2.4 从另一个服务器开始复制
  • 10.2.5 推荐的复制配置
  • 10.3 复制的原理
  • 10.3.1 基于语句的复制
  • 10.3.2 基于行的复制
  • 10.3.3 基于行或基于语句:哪种更优
  • 10.3.4 复制文件
  • 10.3.5 发送复制事件到其他备库
  • 10.3.6 复制过滤器
  • 10.4 复制拓扑
  • 10.4.1 一主库多备库
  • 10.4.2 主动- 主动模式下的主- 主复制
  • 10.4.3 主动- 被动模式下的主- 主复制
  • 10.4.4 拥有备库的主- 主结构
  • 10.4.5 环形复制
  • 10.4.6 主库、分发主库以及备库
  • 10.4.7 树或金字塔形
  • 10.4.8 定制的复制方案
  • 10.5 复制和容量规划
  • 10.5.1 为什么复制无法扩展写操作
  • 10.5.2 备库什么时候开始延迟
  • 10.5.3 规划冗余容量
  • 10.6 复制管理和维护
  • 10.6.1 监控复制
  • 10.6.2 测量备库延迟
  • 10.6.3 确定主备是否一致
  • 10.6.4 从主库重新同步备库
  • 10.6.5 改变主库
  • 10.6.6 在一个主- 主配置中交换角色
  • 10.7 复制的问题和解决方案
  • 10.7.1 数据损坏或丢失的错误
  • 10.7.2 使用非事务型表
  • 10.7.3 混合事务型和非事务型表
  • 10.7.4 不确定语句
  • 10.7.5 主库和备库使用不同的存储引擎
  • 10.7.6 备库发生数据改变
  • 10.7.7 不唯一的服务器ID .
  • 10.7.8 未定义的服务器ID .
  • 10.7.9 对未复制数据的依赖性
  • 10.7.10 丢失的临时表
  • 10.7.11 不复制所有的更新 .
  • 10.7.12 InnoDB 加锁读引起的锁争用
  • 10.7.13 在主- 主复制结构中写入两台主库
  • 10.7.14 过大的复制延迟
  • 10.7.15 来自主库的过大的包
  • 10.7.16 受限制的复制带宽 .
  • 10.7.17 磁盘空间不足
  • 10.7.18 复制的局限性
  • 10.8 复制有多快
  • 10.9 MySQL 复制的高级特性
  • 10.10 其他复制技术
  • 10.11 总结
  • 第11章 可扩展的MySQL
  • 11.1 什么是可扩展性
  • 11.1.1 正式的可扩展性定义
  • 11.2 扩展MySQL
  • 11.2.1 规划可扩展性
  • 11.2.2 为扩展赢得时间
  • 11.2.3 向上扩展
  • 11.2.4 向外扩展
  • 11.2.5 通过多实例扩展
  • 11.2.6 通过集群扩展
  • 11.2.7 向内扩展
  • 11.3 负载均衡
  • 11.3.1 直接连接
  • 11.3.2 引入中间件
  • 11.3.3 一主多备间的负载均衡
  • 11.4 总结
  • 第12章 高可用性
  • 12.1 什么是高可用性
  • 12.2 导致宕机的原因
  • 12.3 如何实现高可用性
  • 12.3.1 提升平均失效时间(MTBF)
  • 12.3.2 降低平均恢复时间(MTTR)
  • 12.4 避免单点失效
  • 12.4.1 共享存储或磁盘复制
  • 12.4.2 MySQL 同步复制
  • 12.4.3 基于复制的冗余
  • 12.5 故障转移和故障恢复
  • 12.5.1 提升备库或切换角色
  • 12.5.2 虚拟IP 地址或IP 接管
  • 12.5.3 中间件解决方案
  • 12.5.4 在应用中处理故障转移
  • 12.6 总结
  • 第13章 云端的MySQL
  • 13.1 云的优点、缺点和相关误解
  • 13.2 MySQL 在云端的经济价值
  • 13.3 云中的MySQL 的可扩展性和高可用性
  • 13.4 四种基础资源
  • 13.5 MySQL 在云主机上的性能
  • 13.5.1 在云端的MySQL 基准测试
  • 13.6 MySQL 数据库即服务(DBaaS)
  • 13.6.1 Amazon RDS
  • 13.6.2 其他DBaaS 解决方案
  • 13.7 总结
  • 第14章 应用层优化
  • 14.1 常见问题
  • 14.2 Web 服务器问题
  • 14.2.1 寻找最优并发度
  • 14.3 缓存
  • 14.3.1 应用层以下的缓存
  • 14.3.2 应用层缓存
  • 14.3.3 缓存控制策略
  • 14.3.4 缓存对象分层
  • 14.3.5 预生成内容
  • 14.3.6 作为基础组件的缓存
  • 14.3.7 使用HandlerSocket 和memcached
  • 14.4 拓展MySQL
  • 14.5 MySQL 的替代品
  • 14.6 总结
  • 第15章 备份与恢复
  • 15.1 为什么要备份
  • 15.2 定义恢复需求
  • 15.3 设计MySQL 备份方案
  • 15.3.1 在线备份还是离线备份
  • 15.3.2 逻辑备份还是物理备份
  • 15.3.3 备份什么
  • 15.3.4 存储引擎和一致性
  • 15.4 管理和备份二进制日志
  • 15.4.1 二进制日志格式
  • 15.4.2 安全地清除老的二进制日志
  • 15.5 备份数据
  • 15.5.1 生成逻辑备份
  • 15.5.2 文件系统快照
  • 15.6 从备份中恢复
  • 15.6.1 恢复物理备份
  • 15.6.2 还原逻辑备份
  • 15.6.3 基于时间点的恢复
  • 15.6.4 更高级的恢复技术
  • 15.6.5 InnoDB 崩溃恢复
  • 15.7 备份和恢复工具
  • 15.7.1 MySQL Enterprise Backup
  • 15.7.2 Percona XtraBackup .
  • 15.7.3 mylvmbackup
  • 15.7.4 Zmanda Recovery Manager
  • 15.7.5 mydumper
  • 15.7.6 mysqldump.
  • 15.8 备份脚本化
  • 15.9 总结
  • 第16章 MySQL 用户工具
  • 16.1 接口工具
  • 16.2 命令行工具集
  • 16.3 SQL 实用集
  • 16.4 监测工具
  • 16.4.1 开源的监控工具
  • 16.4.2 商业监控系统
  • 16.4.3 Innotop 的命令行监控
  • 16.5 总结
  • 附录A MySQL 分支与变种
  • 附录B MySQL 服务器状态
  • 附录C 大文件传输
  • 附录D EXPLAIN
  • 附录E 锁的调试
  • 附录F 在MySQL 上使用Sphinx
  • 索引

资源下载

资源下载地址1:https://pan.baidu.com/s/1ErxQvg4cSOU-dPMtt0WUOw

相关资源

网友留言