MySQL技术内幕:InnoDB存储引擎(第2版)
内容简介:
由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。作为国内唯一一本关于InnoDB的专著,《MySQL技术内幕:InnoDB存储引擎(第2版)》的第1版广受好评,第2版不仅针对最新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,《MySQL技术内幕:InnoDB存储引擎(第2版)》大约重写了50%的内容。《MySQL技术内幕:InnoDB存储引擎(第2版)》从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计管理高性能、高可用的数据库系统提供绝佳的指导。
《MySQL技术内幕:InnoDB存储引擎(第2版)》一共10章,首先宏观地介绍了MySQL的体系结构和各种常见的存储引擎以及它们之间的比较;接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块的实现原理,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份与恢复,以及InnoDB的性能调优等重要的知识;最后对InnoDB存储引擎源代码的编译和调试做了介绍,对大家阅读和理解InnoDB的源代码有重要的指导意义。
《MySQL技术内幕:InnoDB存储引擎(第2版)》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。
作者简介:
姜承尧,资深MySQL数据库专家,不仅擅长于数据库的管理和维护,还擅长于数据库的开发。一直致力于MySQL数据库底层实现原理的研究和探索,对高性能数据库和数据仓库也有深刻而独到的见解。曾为MySQL编写了许多开源工具和性能扩展补丁,如广受好评的InnoDB引擎二级缓存项目。现任久游网数据库工程部经理,曾领导并参与了多个大型核心数据库的设计、实施、管理和维护,实战经验非常丰富。活跃于开源数据库和开源软件领域,是著名开源社区ChinaUnix MySQL版块的版主,热衷于与网友分享自己的心得和体会,深受社区欢迎。
目录:
前言
第1章 MySQL体系结构和存储引擎 1
1.1 定义数据库和实例 1
1.2 MySQL体系结构 3
1.3 MySQL存储引擎 5
1.4 各存储引擎之间的比较 10
1.5 连接MySQL 13
1.6 小结 15
第2章 InnoDB存储引擎 17
2.1 InnoDB存储引擎概述 17
2.2 InnoDB存储引擎的版本 18
2.3 InnoDB体系架构 19
2.4 Checkpoint技术 32
2.5 Master Thread工作方式 36
2.6 InnoDB关键特性 45
2.7 启动、关闭与恢复 58
2.8 小结 61
第3章 文件 62
3.1 参数文件 62
3.2 日志文件 65
3.3 套接字文件 83
3.4 pid文件 83
3.5 表结构定义文件 84
3.6 InnoDB存储引擎文件 84
3.7 小结 90
第4章 表 91
4.1 索引组织表 91
4.2 InnoDB逻辑存储结构 93
4.3 InnoDB行记录格式 102
4.4 InnoDB数据页结构 120
4.5 Named File Formats机制 132
4.6 约束 134
4.7 视图 144
4.8 分区表 152
4.9 小结 182
5.1 InnoDB存储引擎索引概述 183
5.2 数据结构与算法 184
5.3 B+树 187
5.4 B+树索引 191
5.5 Cardinality值 210
5.6 B+树索引的使用 215
5.7 哈希算法 227
5.8 全文检索 231
5.9 小结 248
6.1 什么是锁 249
6.2 lock与latch 250
6.3 InnoDB存储引擎中的锁 252
6.4 锁的算法 265
6.5 锁问题 271
6.6 阻塞 276
6.7 死锁 278
6.8 锁升级 283
6.9 小结 284
7.1 认识事务 285
7.2 事务的实现 294
7.3 事务控制语句 323
7.4 隐式提交的SQL语句 328
7.5 对于事务操作的统计 329
7.6 事务的隔离级别 330
7.7 分布式事务 335
7.8 不好的事务习惯 341
7.9 长事务 347
7.10 小结 349
8.1 备份与恢复概述 350
8.2 冷备 352
8.3 逻辑备份 353
8.4 二进制日志备份与恢复 366
8.5 热备 367
8.6 快照备份 372
8.7 复制 376
8.8 小结 382
9.1 选择合适的CPU 383
9.2 内存的重要性 384
9.3 硬盘对数据库性能的影响 387
9.4 合理地设置RAID 389
9.5 操作系统的选择 397
9.6 不同的文件系统对数据库性能的影响 398
9.7 选择合适的基准测试工具 399
9.8 小结 410
10.1 获取InnoDB存储引擎源代码 411
10.2 InnoDB源代码结构 413
10.3 MySQL 5.1版本编译和调试InnoDB源代码 415
10.4 cmake方式编译和调试InnoDB存储引擎 423
10.5 小结 424