mysql核心1004mysql核心_深入理解MySQL(MySQL核心开发人员力作)

第一部分 MySQL开发入门

第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 获得MySQL源代码 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

第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 C API 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 handlerton类 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

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

第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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值