样章免费试读: http://www.china-pub.com/196166
作者: 祝定泽 张海 黄建昌
出版社:清华大学出版社
ISBN:9787302216964
上架时间:2009-12-30
出版日期:2010 年1月
开本:16开
页码:338
版次:1-1
【编辑推荐】
新一轮MySQL热浪袭来
翻开最新GA的MySQL源码
国内首个开源的MySQL存储引擎
跟踪Sun收购MySQL后的动态变化
国内首次披露的 MySQL 内核视频讲解
国内首款开源MySQL存储引擎Lillian的代码
MySQL Bazaar中文分析结果
【内容简介】
本书由Sun中国工程院的MySQL专家讲解MySQL内核设计和实现。作者对MySQL分而治之,将复杂的MySQL内核划分成多个功能子系统,从而化解了理解子系统的各个难点。
本书共分12章。第1章介绍MySQL的历史渊源。第2章介绍MySQL数据库的架构。第3章深入了解MySQL源代码,第4章解释关键的类和算法。从第5章开始直到最后,按各子系统进行讲解,内容包括连接和网络系统、服务器线程和资源管理、查询解析与优化器、安全管理系统、存储引擎接口详解与实践、经典存储引擎、日志功能及实践分析和其他子系统。
配书光盘中提供了相关的MySQL源代码。
本书适合对内核编程设计感兴趣的技术人员和开发者以及在学习、工作中使用MySQL数据库的各类技术人员阅读。由于主要内容均涉及到MySQL内核源代码,所以学习者应当具备C/C++预备知识。
【目录】
第1章 MySQL的前世今生. 1
1.1 MySQL的历史 2
1.2 存储引擎 4
1.3 MySQL市场 6
1.4 后话 8
第2章 数据库系统的立体视图 9
2.1 数据库系统架构 10
2.2 数据库系统的分类 10
2.2.1 面向对象型数据库 10
2.2.2 关系型数据库 13
2.2.3 对象关系型数据库 14
2.3 关系型数据库系统架构 15
2.3.1 客户端应用程序 16
2.3.2 查询接口 16
2.3.3 查询语句处理 17
2.3.4 查询优化 18
2.3.5 语句执行 19
2.3.6 读写文件 19
2.3.7 模块协作 19
2.3.8 RDBMS的层次结构 20
.2.4 MySQL数据库系统 21
2.4.1 MySQL数据库系统架构 22
2.4.2 子系统之间的联系 23
2.4.3 MySQL子系统和代码 25
2.5 小结 29
第3章 畅游源代码 31
3.1 下载MySQL源代码 32
3.1.1 Bazaar安装 32
3.1.2 访问MySQL源代码 33
3.2 源代码目录结构 35
3.2.1 主要关键目录 36
3.2.2 开源社区贡献的代码 42
3.2.3 解读sql/sql_delete.cc 43
3.3 MySQL内核分析工具 46
3.3.1 编译和安装MySQL 48
3.3.2 调试MySQL 50
3.3.3 源代码检索工具 56
3.3.4 Doxyen分析源代码 57
3.4 小结 58
第4章 核心类、库函数和算法 59
4.1 核心类 61
4.1.1 线程类(THD) 61
4.1.2 Item类 65
4.1.3 表描述类- TABLE 68
4.1.4 FIELD类 69
4.2 函数库 72
4.2.1 内存操作函数 73
4.2.2 文件系统操作函数 74
4.2.3 哈希表操作 76
4.2.4 字符串操作 77
4.2.5 宏定义 78
4.3 核心算法 78
4.3.1 Bitmaps –位图 79
4.3.2 表连接缓冲工作原理 80
4.3.3 MySQL排序实现 83
4.3.4 字符集和校对规则 86
4.4 小结 88
第5章 连接和网络系统 89
5.1 MySQL NET协议 90
5.1.1 协议和操作系统协议栈 90
5.2 网络包格式 92
5.2.1 Null结尾字符串和
带长度标识字符串 93
5.2.2 网络包头部格式 94
5.3 客户端发送的包 95
5.3.1 客户端认证包 95
5.3.2 命令包(Command) 96
5.4 服务器端发送的包 99
5.4.1 握手初始化包 99
5.4.2 结果包分类 102
5.4.3 OK包 102
5.4.4 ERROR包 105
5.4.5 结果集包 107
5.5 小结 114
第6章 服务器线程和资源管理 117
6.1 线程还是进程 118
6.1.1 线程与进程的比较 119
6.2 MySQL线程问题和解决方案 120
6.2.1 标准C函数调用 121
6.2.2 互斥锁 122
6.2.3 线程同步 124
6.3 客户端请求的处理 126
6.3.1 MySQL的启动过程 127
6.3.2 执行流 128
6.4 类、API、变量和结构体 130
6.5 MySQL内存分配 132
6.5.1 内存共享块 132
6.5.2 线程内存区域(TMA) 133
6.5.3 MySQL如何实现内存分配 134
6.6 小结 137
第7章 查询解析与优化器 139
7.1 MySQL解析器 140
7.1.1 词法分析程序.. 143
7.1.2 语法分析器 146
7.1.3 几个关键类 146
7.2 查询优化器 154
7.2.1 传统优化算法 154
7.2.2 MySQL的查询算法 155
7.3 小结 170
第8章 安全管理系统 171
8.1 账号认证 172
8.1.1 账号定义 172
8.1.2 身份审核 173
8.1.3 具体优先原则 182
8.2 权限控制 183
8.2.1 系统权限表 184
8.2.2 权限审核 186
8.2.3 权限级别 189
8.3 安全部署 193
8.3.1 服务器系统安全 194
8.3.2 数据库系统安全 194
8.4 小结 198
第9章 存储引擎接口详解与实践 199
9.1 MySQL插件式存储引擎体系结构 200
9.1.1 基本流程 200
9.1.2 从源代码文件开始 201
9.1.3 意想不到的帮助 201
9.1.4 Handlerton 202
9.1.5 Handler类 204
9.1.6 Archive存储引擎的
简单分析 208
9.2 开发我的存储引擎——
Lillian(模板剖析) 209
9.2.1 底层I/O类 209
9.2.2 Lillian_data类 209
9.2.3 Lillian_index类 217
9.3 开发我的存储引擎——
Lillian(代码编写) 232
9.3.1 阶段一:初始化存储引擎 232
9.3.2 阶段二:表操作 238
9.3.3 阶段三:读写数据 243
9.3.4 阶段四:修改、删除数据 245
9.3.5 阶段五:索引功能 248
9.4 小结 261
第10章 存储引擎 263
10.1 MySQL元数据文件——frm 264
10.2 MyISAM存储引擎 270
10.2.1 MyISAM的架构 270
10.2.2 数据文件(.MYD) 271
10.2.3 索引文件(.MYI) 277
10.3 InnoDB存储引擎 288
10.3.1 InnoDB的宗旨和
主要功能特性 288
10.3.2 InnoDB的架构和
代码布局 288
10.3.3 InnoDB 文件格式 291
10.3.4 InnoDB 记录结构 292
10.3.5 InnoDB页结构 296
10.4 小结 300
第11章 MySQL日志功能及实现分析 301
11.1 错误日志 302
11.1.1 错误日志功能介绍 302
11.1.2 错误日志初始化 303
11.1.3 错误日志的记录实现 305
11.2 普通日志 307
11.2.1 普通日志功能介绍 307
11.2.2 普通日志的初始化 310
11.2.3 普通日志记录功能实现 311
11.3 慢查询日志 312
11.3.1 慢查询日志功能概述 312
11.3.2 慢查询日志的初始化 313
11.3.3 慢查询日志的实现 314
11.4 二进制日志 317
11.4.1 二进制日志功能介绍 317
11.4.2 二进制日志的初始化 320
11.4.3 二进制日志的实现 321
11.5 小结 322
第12章 其他子系统 323
12.1 复制功能(Replication)子系统 324
12.1.1 Replication基础架构
描述 324
12.1.2 Replication实现原理
简述 325
12.1.3 Replication复制线程 326
12.1.4 Replication功能文件 326
12.1.5 Replication子系统组成 327
12.1.6 Replication原理剖析 327
12.1.7 小结 342
12.2 错误消息子系统 342
12.2.1 错误消息的实现原理 342
12.2.2 错误消息的一致性 344
12.2.3 不同版本下错误消息的添加方法 345
12.2.4 小结 345
附录一 Bazaar入门指南 347
附录二 MySQL源码分布纵览 354
参考文献... 371