展开全部

主编推荐语

本书由资深MySQL专家亲自执笔,多位数据库专家联袂推荐,适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。

内容简介

作为国内一本关于InnoDB的专著,本书的第1版广受好评,第2版不仅针对全新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,全书大约重写了50%的内容。

本书从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计管理高性能、高可用的数据库系统提供专业的指导。

本书一共10章,首先宏观地介绍了MySQL的体系结构和各种常见的存储引擎以及它们之间的比较;接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块的实现原理,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份与恢复,以及InnoDB的性能调优等重要的知识;最后对InnoDB存储引擎源代码的编译和调试做了介绍,对大家阅读和理解InnoDB的源代码有重要的指导意义。

目录

  • 版权信息
  • 推荐序
  • 前言
  • 第1章 MySQL体系结构和存储引擎
  • 1.1 定义数据库和实例
  • 1.2 MySQL体系结构
  • 1.3 MySQL存储引擎
  • 1.3.1 InnoDB存储引擎
  • 1.3.2 MyISAM存储引擎
  • 1.3.3 NDB存储引擎
  • 1.3.4 Memory存储引擎
  • 1.3.5 Archive存储引擎
  • 1.3.6 Federated存储引擎
  • 1.3.7 Maria存储引擎
  • 1.3.8 其他存储引擎
  • 1.4 各存储引擎之间的比较
  • 1.5 连接MySQL
  • 1.5.1 TCP/IP
  • 1.5.2 命名管道和共享内存
  • 1.5.3 UNIX域套接字
  • 1.6 小结
  • 第2章 InnoDB存储引擎
  • 2.1 InnoDB存储引擎概述
  • 2.2 InnoDB存储引擎的版本
  • 2.3 InnoDB体系架构
  • 2.3.1 后台线程
  • 2.3.2 内存
  • 2.4 Checkpoint技术
  • 2.5 Master Thread工作方式
  • 2.5.1 InnoDB 1.0.x版本之前的Master Thread
  • 2.5.2 InnoDB1.2.x版本之前的Master Thread
  • 2.5.3 InnoDB 1.2.x版本的Master Thread
  • 2.6 InnoDB关键特性
  • 2.6.1 插入缓冲
  • 2.6.2 两次写
  • 2.6.3 自适应哈希索引
  • 2.6.4 异步IO
  • 2.6.5 刷新邻接页
  • 2.7 启动、关闭与恢复
  • 2.8 小结
  • 第3章 文件
  • 3.1 参数文件
  • 3.1.1 什么是参数
  • 3.1.2 参数类型
  • 3.2 日志文件
  • 3.2.1 错误日志
  • 3.2.2 慢查询日志
  • 3.2.3 查询日志
  • 3.2.4 二进制日志
  • 3.3 套接字文件
  • 3.4 pid文件
  • 3.5 表结构定义文件
  • 3.6 InnoDB存储引擎文件
  • 3.6.1 表空间文件
  • 3.6.2 重做日志文件
  • 3.7 小结
  • 第4章 表
  • 4.1 索引组织表
  • 4.2 InnoDB逻辑存储结构
  • 4.2.1 表空间
  • 4.2.2 段
  • 4.2.3 区
  • 4.2.4 页
  • 4.2.5 行
  • 4.3 InnoDB行记录格式
  • 4.3.1 Compact行记录格式
  • 4.3.2 Redundant行记录格式
  • 4.3.3 行溢出数据
  • 4.3.4 Compressed和Dynamic行记录格式
  • 4.3.5 CHAR的行结构存储
  • 4.4 InnoDB数据页结构
  • 4.4.1 File Header
  • 4.4.2 Page Header
  • 4.4.3 Infimum和Supremum Record
  • 4.4.4 User Record和Free Space
  • 4.4.5 Page Directory
  • 4.4.6 File Trailer
  • 4.4.7 InnoDB数据页结构示例分析
  • 4.5 Named File Formats机制
  • 4.6 约束
  • 4.6.1 数据完整性
  • 4.6.2 约束的创建和查找
  • 4.6.3 约束和索引的区别
  • 4.6.4 对错误数据的约束
  • 4.6.5 ENUM和SET约束
  • 4.6.6 触发器与约束
  • 4.6.7 外键约束
  • 4.7 视图
  • 4.7.1 视图的作用
  • 4.7.2 物化视图
  • 4.8 分区表
  • 4.8.1 分区概述
  • 4.8.2 分区类型
  • 4.8.3 子分区
  • 4.8.4 分区中的NULL值
  • 4.8.5 分区和性能
  • 4.8.6 在表和分区间交换数据
  • 4.9 小结
  • 第5章 索引与算法
  • 5.1 InnoDB存储引擎索引概述
  • 5.2 数据结构与算法
  • 5.2.1 二分查找法
  • 5.2.2 二叉查找树和平衡二叉树
  • 5.3 B+树
  • 5.3.1 B+树的插入操作
  • 5.3.2 B+树的删除操作
  • 5.4 B+树索引
  • 5.4.1 聚集索引
  • 5.4.2 辅助索引
  • 5.4.3 B+树索引的分裂
  • 5.4.4 B+树索引的管理
  • 5.5 Cardinality值
  • 5.5.1 什么是Cardinality
  • 5.5.2 InnoDB存储引擎的Cardinality统计
  • 5.6 B+树索引的使用
  • 5.6.1 不同应用中B+树索引的使用
  • 5.6.2 联合索引
  • 5.6.3 覆盖索引
  • 5.6.4 优化器选择不使用索引的情况
  • 5.6.5 索引提示
  • 5.6.6 Multi-Range Read优化
  • 5.6.7 Index Condition Pushdown(ICP)优化
  • 5.7 哈希算法
  • 5.7.1 哈希表
  • 5.7.2 InnoDB存储引擎中的哈希算法
  • 5.7.3 自适应哈希索引
  • 5.8 全文检索
  • 5.8.1 概述
  • 5.8.2 倒排索引
  • 5.8.3 InnoDB全文检索
  • 5.8.4 全文检索
  • 5.9 小结
  • 第6章 锁
  • 6.1 什么是锁
  • 6.2 lock与latch
  • 6.3 InnoDB存储引擎中的锁
  • 6.3.1 锁的类型
  • 6.3.2 一致性非锁定读
  • 6.3.3 一致性锁定读
  • 6.3.4 自增长与锁
  • 6.3.5 外键和锁
  • 6.4 锁的算法
  • 6.4.1 行锁的3种算法
  • 6.4.2 解决Phantom Problem
  • 6.5 锁问题
  • 6.5.1 脏读
  • 6.5.2 不可重复读
  • 6.5.3 丢失更新
  • 6.6 阻塞
  • 6.7 死锁
  • 6.7.1 死锁的概念
  • 6.7.2 死锁概率
  • 6.7.3 死锁的示例
  • 6.8 锁升级
  • 6.9 小结
  • 第7章 事务
  • 7.1 认识事务
  • 7.1.1 概述
  • 7.1.2 分类
  • 7.2 事务的实现
  • 7.2.1 redo
  • 7.2.2 undo
  • 7.2.3 purge
  • 7.2.4 group commit
  • 7.3 事务控制语句
  • 7.4 隐式提交的SQL语句
  • 7.5 对于事务操作的统计
  • 7.6 事务的隔离级别
  • 7.7 分布式事务
  • 7.7.1 MySQL数据库分布式事务
  • 7.7.2 内部XA事务
  • 7.8 不好的事务习惯
  • 7.8.1 在循环中提交
  • 7.8.2 使用自动提交
  • 7.8.3 使用自动回滚
  • 7.9 长事务
  • 7.10 小结
  • 第8章 备份与恢复
  • 8.1 备份与恢复概述
  • 8.2 冷备
  • 8.3 逻辑备份
  • 8.3.1 mysqldump
  • 8.3.2 SELECT...INTO OUTFILE
  • 8.3.3 逻辑备份的恢复
  • 8.3.4 LOAD DATA INFILE
  • 8.3.5 mysqlimport
  • 8.4 二进制日志备份与恢复
  • 8.5 热备
  • 8.5.1 ibbackup
  • 8.5.2 XtraBackup
  • 8.5.3 XtraBackup实现增量备份
  • 8.6 快照备份
  • 8.7 复制
  • 8.7.1 复制的工作原理
  • 8.7.2 快照+复制的备份架构
  • 8.8 小结
  • 第9章 性能调优
  • 9.1 选择合适的CPU
  • 9.2 内存的重要性
  • 9.3 硬盘对数据库性能的影响
  • 9.3.1 传统机械硬盘
  • 9.3.2 固态硬盘
  • 9.4 合理地设置RAID
  • 9.4.1 RAID类型
  • 9.4.2 RAID Write Back功能
  • 9.4.3 RAID配置工具
  • 9.5 操作系统的选择
  • 9.6 不同的文件系统对数据库性能的影响
  • 9.7 选择合适的基准测试工具
  • 9.7.1 sysbench
  • 9.7.2 mysql-tpcc
  • 9.8 小结
  • 第10章 InnoDB存储引擎源代码的编译和调试
  • 10.1 获取InnoDB存储引擎源代码
  • 10.2 InnoDB源代码结构
  • 10.3 MySQL 5.1版本编译和调试InnoDB源代码
  • 10.3.1 Windows下的调试
  • 10.3.2 Linux下的调试
  • 10.4 cmake方式编译和调试InnoDB存储引擎
  • 10.5 小结
展开全部

评分及书评

5.0
9个评分
  • 用户头像
    给这本书评了
    5.0

    本书不仅讲述了 InnoDB 存储引擎的诸多功能和特性,还阐述了如何正确地使用这些功能和特性,更重要的是,还尝试了教我们如何 Think DifferentThink Different 是 20 世纪 90 年代苹果公司在其旷日持久的宣传活动中提出的一个口号,借此来重振公司的品牌,更重要的是,这个口号改变了人们对技术在日常生活中的作用的看法。

      转发
      评论
      用户头像
      给这本书评了
      5.0

      innodb 存储引擎的经典著作!强烈推荐!

        转发
        评论
        用户头像
        给这本书评了
        5.0

        还需要再读一遍~

          转发
          评论

        出版方

        机械工业出版社有限公司

        机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。