深入理解MySQL[Expert MySQL]pdf

图书网 2018年5月8日09:50:02
评论
3.2K1

MySQL核心开发人员力作

带你深入MySQL源代码和底层架构

身临其境,透彻掌握数据库理论与实践

MySQL是目前最流行的开源数据库。经过多年发展,日趋成熟,已经能够和主流的商业数据库相抗衡。

《深入理解MySQL》结合MySQL源代码深入讲解了MySQL数据库的核心知识。全书分为三个部分,从介绍数据库基础知识开始,逐步深入到存储引擎.最后介绍了查询优化器等数据库内部结构。第三部分还提供了一些有关数据库的实验.以便读者亲自动手来构建一个实验性质的数据库,从而加深对数据库内部结构的了解。作者很好地兼顾了理论与实践.使《深入理解MySQL》不仅适合数据库开发和管理人员阅读参考。也可以用于高校数据库相关课程的教学。在学习完《深入理解MySQL》后。你不仅将对MySQL有更加深入的理解。也会对数据库理论有全新的认识。成为一个数据库方面的行家里手。

深入理解MySQL[Expert MySQL] 内容简介

《深入理解MySQL》深入源代码,剖析了MySQL数据库系统的架构,并提供了分析、集成和修改MySQL源代码的专家级建议。《深入理解MySQL》分三个部分:第一部分介绍开发和修改开源系统的概念,提供探讨更高级数据库概念所需的工具和资源;第二部分讨论MySQL系统,阐明如何修改MySQL源码,如何将MySQL系统作为嵌入式数据库系统;第三部分更深入地探讨了MySQL系统,讲述数据库工作的内部机理。

《深入理解MySQL》面向MySQL数据库开发人员。

深入理解MySQL[Expert 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

深入理解MySQL[Expert MySQL] 精彩文摘

开源软件也支持并提供API,但更重要的是开源软件让开发人员能够直接查看核心系统源代码。事实上,他们不仅可以看到源代码,更可以自由地修改它(这在开源阵营里是一种受到鼓励的行为)!只要它不具备你需要的重要特性,或者你需要系统能够读写某种特定的格式,你就可以亲自动手去修改核心系统。从这一点看,开源软件要比商业专利软件更能激发开发人员的创造力。

2.论点2:商业专利软件比开源软件更安全

这一结论的主要论据是:在当今这个以因特网为纽带紧密联系的社会里,企业在信息系统安全性方面的要求要比以往任何时候都迫切。商业专利软件生来就更加安全,因为销售这些软件的公司已经投入了较大的力量去保证自己的产品可以经受住数字侵略者的攻击。

尽管这句话很可能被贴在商业软件公司会议室的墙上,作为公司的口号,但这个目标的实现情况不见得像这些公司的广告里所吹嘘的那么好。就拿微软公司的服务器版Windows操作系统来说吧。有关统计数字表明,Windows操作系统的服务器版本在安全性方面比不上Linux。虽然微软已经建立了一个成功而高效的补丁系统来保证Windows用户免遭已知攻击手段的伤害,但为’Windows打补丁已成为服务器日常维护工作的一部分,这一事实已足以让我们怀疑微软产品的安全性达不到可以让用户免遭攻击的水平。(有些人为此给出了这样一个说法:只要微软存在,就会有数字侵略者。)

图书网:深入理解MySQL[Expert MySQL]pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

数据库

Kali Linux & BackTrack渗透测试实战pdf

本书基于编写团队的实际经验,围绕渗透测试进行了全面介绍,并选择“Kali Linux(包含BackTrack)” Live CD作为讲解工具。下载BackTrack Live CD和Kali Linu...
数据库

SQL进阶教程pdf

数据库工程师进阶中级实用指南 挖掘SQL常见技术的新用法 基于标准SQL编写 示例程序均可下载 本书适合具有一定SQL编程经验的工程师阅读 本书特色 1.转变面向过程语言的思维定式,学习SQL常见技术...
数据库

锋利的SQLpdf

锋利的SQL 作者:张洪举 锋利的SQL 出版社:人民邮电出版社 锋利的SQL 内容简介 《锋利的SQL》从基础、开发、性能调整和实战4个方面介绍了SQL技术及其应用,包括数据库管理、表管理、索引管理...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: