mysql核心内幕_MySQL核心内幕

第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.cc43

3.3 MySQL内核分析工具46

3.3.1 编译和安装MySQL48

3.3.2 调试MySQL50

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 表描述类- TABLE68

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 Handlerton202

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元数据文件——frm264

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值