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