《深入理解MySQL》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)CharlesA.Bell著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115189103
  • 页数:467 页
图书介绍:本书涉及MySQL数据库系统的高级主题,探讨MySQL的架构,并提供检测、集成和修改MySQL源代码的专家级建议。本书分3个部分,第一部分介绍开发和修改开源系统的概念,提供探讨更高级数据库概念所需的工具和资源。第二部分讨论MySQL系统,例如,如何修改MySQL源码,如何将MySQL系统作为嵌入式数据库系统。第三部分更深入地探讨了MySQL系统,讲述数据库工作的内部机理。

第一部分 MySQL开发入门 2

第1章 MySQL与开源运动 2

1.1什么是开源软件 2

1.1.1为什么要使用开源软件 4

1.1.2开源软件是否对商业软件构成真正的威胁 7

1.1.3法律问题与《GNU宣言》 8

1.1.4将开源进行到底 10

1.2用MySQL进行开发 11

1.2.1为什么修改MySQL 13

1.2.2 MySQL里哪些可以修改,有什么限制 14

1.2.3 MySQL的许可证问题 15

1.2.4到底能否修改MySQL 16

1.2.5修改MySQL的指导原则 17

1.3实际的例子:TiVo 18

1.4小结 19

第2章 数据库系统剖析 20

2.1数据库系统的体系结构 20

2.2数据库系统的类型 20

2.2.1面向对象数据库系统 20

2.2.2对象关系数据库系统 21

2.2.3关系数据库系统 23

2.3关系数据库系统的体系结构 24

2.3.1客户端应用程序 25

2.3.2查询接口 26

2.3.3查询处理 27

2.3.4查询优化器 29

2.3.5查询的内部表示 31

2.3.6查询的执行 32

2.3.7文件访问 33

2.3.8查询结果 35

2.3.9关系数据库的体系结构小结 35

2.4 MySQL数据库系统 35

2.4.1 MySQL系统体系结构 36

2.4.2 SQL接口 37

2.4.3解析器 38

2.4.4查询优化器 39

2.4.5查询的执行 40

2.4.6查询缓存 40

2.4.7缓存和缓冲区 42

2.4.8通过插件式存储引擎访问文件 43

2.5小结 50

第3章 MySQL源代码 51

3.1预备知识 51

3.1.1了解许可证 51

3.1.2获得My SQL源代码 52

3.2 MySQL源代码 56

3.2.1预备知识 57

3.2.2 main()函数 59

3.2.3处理连接和创建线程 62

3.2.4解析查询 69

3.2.5优化查询的准备工作 75

3.2.6优化查询 78

3.2.7执行查询 80

3.2.8辅助库 82

3.2.9重要的类和结构 83

3.3编程指导 88

3.3.1总体指导 89

3.3.2文档 89

3.3.3函数和参数 91

3.3.4命名约定 92

3.3.5分隔与缩进 92

3.3.6文档工具 93

3.3.7保持工作记录的习惯 95

3.3.8追踪变化 95

3.4第一次构建系统 97

3.5小结 100

第4章 测试驱动的MySQL开发 101

4.1背景知识 101

4.1.1为什么要测试 101

4.1.2基准测试 103

4.1.3性能分析 105

4.1.4软件测试简介 107

4.1.5功能测试与缺陷测试 107

4.2 MySQL测试 111

4.2.1 MySQL Test Suite 111

4.2.2 MySQL基准测试 119

4.2.3 MySQL性能分析 124

4.3小结 126

第二部分 扩展MySQL 128

第5章 调试 128

5.1调试介绍 128

5.2调试技术 129

5.2.1基本过程 129

5.2.2内嵌调试语句 131

5.2.3出错处理器 134

5.2.4外部调试器 135

5.3调试MySQL 142

5.3.1内嵌调试语句 143

5.3.2出错处理器 148

5.3.3在Linux环境里调试MySQL 148

5.3.4在Windows环境里调试MySQL 157

5.4小结 161

第6章 嵌入式MySQL 162

6.1构建嵌入式应用 162

6.1.1什么是嵌入式系统 162

6.1.2嵌入式系统的种类 163

6.1.3嵌入式数据库系统 163

6.2嵌入MySQL 164

6.2.1嵌入MySQL的方法 165

6.2.2资源要求 167

6.2.3安全问题 167

6.2.4嵌入MySQL的优点 167

6.2.5嵌入MySQL的局限性 168

6.3 MySQL CAPI 168

6.3.1预备知识 168

6.3.2最常用的函数 169

6.3.3创建嵌入式服务器 170

6.3.4对服务器进行初始化 171

6.3.5设置选项 172

6.3.6连接到服务器 172

6.3.7运行查询命令 173

6.3.8检索查询结果 174

6.3.9清理 175

6.3.10与服务器断开连接并关闭服务器 175

6.3.11汇总 175

6.3.12出错处理 177

6.4构建嵌入式MySQL应用程序 177

6.4.1编译libmysqld库 177

6.4.2调试问题如何解决 178

6.4.3数据问题如何解决 180

6.4.4创建基本的嵌入式服务器 180

6.4.5出错处理问题如何解决 189

6.4.6嵌入式服务器应用程序 189

6.5小结 214

第7章 创建自己的存储引擎 215

7.1 MySQL插件式存储引擎概述 215

7.1.1基本过程 217

7.1.2需要用到的源文件 218

7.1.3其他辅助资源 218

7.1.4 handl erton类 218

7.1.5 handler类 221

7.1.6对MySQL存储引擎的简要分析 225

7.2 Spartan存储引擎 226

7.2.1底层I/O类 227

7.2.2预备知识 250

7.2.3阶段1:生成引擎存根 251

7.2.4阶段2:处理表 262

7.2.5阶段3:数据的读/写 269

7.2.6阶段4:数据的更新和删除 273

7.2.7阶段5:数据的索引 280

7.2.8阶段6:添加事务支持 299

7.3小结 303

第8章 为MySQL添加函数和命令 305

8.1添加用户定义函数 305

8.1.1 CREATE FUNCTION命令的语法 305

8.1.2 DROP FUNCTION命令的语法 306

8.1.3创建用户定义库 306

8.1.4添加新的用户定义函数 311

8.2添加本机函数 315

8.2.1在Windows平台上生成词法散列表 318

8.2.2在Linux平台上生成词法散列表 318

8.2.3编译和测试新的本机函数 318

8.3添加SQL命令 319

8.4添加到信息模式 327

8.5小结 333

第三部分 高级数据库的内部组成 336

第9章 数据库系统的内部组成 336

9.1查询执行 336

9.1.1重温 MySQL查询执行 336

9.1.2什么是已编译查询 337

9.2深入MySQL的内部 337

9.2.1开始用MySQL做实验 338

9.2.2注意事项 340

9.3数据库系统内部组成实验 340

9.3.1为什么叫实验 341

9.3.2实验项目概述 341

9.3.3实验项目的组成部分 342

9.3.4在Linux平台上进行实验 343

9.3.5在Windows平台上进行实验 343

9.4小结 343

第10章 内部查询表示 344

10.1查询树 344

10.1.1查询转换 346

10.1.2 DBXP查询树 347

10.2在MySQL里实现DBXP查询树 348

10.2.1被添加和修改的文件 349

10.2.2创建测试 349

10.2.3为SELECT DBXP命令生成存根 350

10.2.4添加查询树类 357

10.2.5显示查询树的细节 366

10.3小结 373

第11章 查询优化 374

11.1查询优化器的类型 374

11.1.1基于开销的优化器 375

11.1.2启发式优化器 377

11.1.3语义优化器 377

11.1.4参数优化器 378

11.2再次讨论启发式优化 378

11.3 DBXP查询优化器 379

11.3.1测试设计 379

11.3.2为SELECT DBXP命令生成存根 380

11.3.3重要的MySQL结构和类 382

11.3.4 DBXP辅助类 385

11.3.5修改现有代码 386

11.3.6启发式优化器的细节 390

11.3.7代码的编译和测试 413

11.4小结 417

第12章 查询执行 418

12.1回顾查询执行 418

12.1.1投影 418

12.1.2限制 419

12.1.3联结 419

12.2 DBXP查询执行 429

12.2.1测试的设计 430

12.2.2更新SELECT DBXP命令 431

12.2.3 DBXP算法 433

12.2.4代码的编译和测试 454

12.3小结 457

附录 459