查看书籍详细信息:
编辑推荐
从公共可用性的意义上讲,MySQL源代码是开放源代码,但如果对其不了解,则实质上,它对于您来说是封闭的。MySQL开发团队的前成/员Sasha Pachev通过本书给出了MySQL 5的全面指南,揭示了这一强大数据库的内部运作。您将直奔MySQL核心技术,了解各种数据结构和各种方便的功能的运作情况,了解如何添加新的存储引擎和配置选项等。《深入理解MySQL核心技术》从结构概况讲起,在这一部分解释了MysQL的不同组件是如何协同工作的。接着将学习设置有效的可编译代码副本的步骤,然后使用基本架构添加自己的配置变量和存储引擎。
本书其他章节包括:
核心服务器类、结构和API
客户端和服务器之间的通信协议
配置变量,包括添加自己的配置变量的教程和代码
基于线程的请求处理以及如何在MySQLqh使用线程
MySQL存储引擎总览
集成第三方存储引擎的存储引擎接口
表锁管理器
执行SQL命令的分析器和优化器
将事务存储引擎整合至IJMySQL中
复制内核
通过对源代码中那些未作文档说明的关键数据结构和方法进行描述,《深入理解MySQL核心技术》为您提供了很好的机会,帮助您了解这个广经企业考验的数据库的内部运作。不论您是开发人员、数据库管理员、程序员、软件供应商还是学生,本书将指导您探索和改进大型数据库。
本书其他章节包括:
核心服务器类、结构和API
客户端和服务器之间的通信协议
配置变量,包括添加自己的配置变量的教程和代码
基于线程的请求处理以及如何在MySQLqh使用线程
MySQL存储引擎总览
集成第三方存储引擎的存储引擎接口
表锁管理器
执行SQL命令的分析器和优化器
将事务存储引擎整合至IJMySQL中
复制内核
通过对源代码中那些未作文档说明的关键数据结构和方法进行描述,《深入理解MySQL核心技术》为您提供了很好的机会,帮助您了解这个广经企业考验的数据库的内部运作。不论您是开发人员、数据库管理员、程序员、软件供应商还是学生,本书将指导您探索和改进大型数据库。
内容简介
从公共可用性的意义上讲,MySQL源代码是开放源代码,但如果对其不了解,则实质上,它对于您来说是封闭的。MysQL开发团队的前成员Sasha Pachev通过本书给出了MySQL 5的全面指南,揭示了这一强大数据库的内部运作。您将直奔MySQL核心技术,了解各种数据结构和各种方便的功能的运作情况,了解如何添加新的存储引擎和配置选项等。
本书从结构概况讲起,在这一部分解释了MysQL的不同组件是如何协同工作的。接着将学习设置有效的可编译代码副本的步骤,然后使用基本架构添加自己的配置变量和存储引擎。
本书从结构概况讲起,在这一部分解释了MysQL的不同组件是如何协同工作的。接着将学习设置有效的可编译代码副本的步骤,然后使用基本架构添加自己的配置变量和存储引擎。
作者简介
Sasha Pachev在2000年到2002年期间是MySQL开发团队成员之一,是MySQL复制结构的最初开发者,《MySQL企业解决方案》一书的作者,现居住在美国犹他州普罗沃(Provo),职业是独立顾问,专攻MySQL。Sasha还一位专注的长跑运动员,是Fast Running Blog.com的撰稿人。
目录
前言
第1章 MySQL的历史与架构
MySQL的历史
MySQL的架构
第2章 MySQL源代码基本要点
Unix Shell
BitKeeper
准备系统:从BitKeeper树构建MySQL
从BitKeeper树构建MySQL
从源代码分发版本构建
将MysQL安装到系统目录
源代码目录布局
准备系统:在调试程序中运行MysQL
以调试程序为向导探索源代码
gdb使用基本要点
在源代码中查找信息
值得关注的断点和变量
修改源代码
编码指南
不断更新BitKeeper知识库
提交补丁
第3章 核心类、结构、变量及API
THD
NET
TABLE
Field
实用程序API调用
处理器宏
全局变量
第4章 客户端/服务器通信
协议概述
包格式
MysQL协议与0S层之间的关系
验证握手
命令包
服务器响应
第5章 配置变量
配置变量教程
特定配置变量的各有关方面
第6章 基于线程的请求处理
线程与进程
请求处理的实现
线程编程问题
第7章 存储引擎接口
Handler类
向MysQL添加定制存储引擎
第8章 并发访问与锁定
表锁管理器
第9章 解析器和优化器
解析器
优化器
第10章 存储引擎
架构的相同之处
InnoDB
Memory(Heap)
MyISAM Merge
NDB
Archive
Federated
第11章 事务
事务存储引擎实现概述
实现处理器子类
定义handlerton
使用查询高速缓存
使用复制二进制日志
避免死锁
第12章 复制
概述
基于语句的复制与基于行的复制
双线程从服务器
多主服务器
有助于理解复制的SQL命令
二进制日志格式
创建自定义复制实用程序
第1章 MySQL的历史与架构
MySQL的历史
MySQL的架构
第2章 MySQL源代码基本要点
Unix Shell
BitKeeper
准备系统:从BitKeeper树构建MySQL
从BitKeeper树构建MySQL
从源代码分发版本构建
将MysQL安装到系统目录
源代码目录布局
准备系统:在调试程序中运行MysQL
以调试程序为向导探索源代码
gdb使用基本要点
在源代码中查找信息
值得关注的断点和变量
修改源代码
编码指南
不断更新BitKeeper知识库
提交补丁
第3章 核心类、结构、变量及API
THD
NET
TABLE
Field
实用程序API调用
处理器宏
全局变量
第4章 客户端/服务器通信
协议概述
包格式
MysQL协议与0S层之间的关系
验证握手
命令包
服务器响应
第5章 配置变量
配置变量教程
特定配置变量的各有关方面
第6章 基于线程的请求处理
线程与进程
请求处理的实现
线程编程问题
第7章 存储引擎接口
Handler类
向MysQL添加定制存储引擎
第8章 并发访问与锁定
表锁管理器
第9章 解析器和优化器
解析器
优化器
第10章 存储引擎
架构的相同之处
InnoDB
Memory(Heap)
MyISAM Merge
NDB
Archive
Federated
第11章 事务
事务存储引擎实现概述
实现处理器子类
定义handlerton
使用查询高速缓存
使用复制二进制日志
避免死锁
第12章 复制
概述
基于语句的复制与基于行的复制
双线程从服务器
多主服务器
有助于理解复制的SQL命令
二进制日志格式
创建自定义复制实用程序
在线试读部分章节
第1章 MySQL的历史与架构
走进MySQL的历史,才能透彻了解MySQL的架构。因此,这两部分将放在同一章中介绍。
MySQL的历史
MySQL的历史可以追溯到1979年,当时Monty Widenius在一家名叫TcX的小公司中工作,他创建了一种用BASIC语言编写的报告工具,该工具在一台装有16KBRAM的4MHz计算机上运行。随着时间的推移,该工具被重新用C语言编写,并移植到unix系统上运行——这时它仍然是一种具有报告前端的低层次存储引擎。这种工具就是众所周知的Unireg。
在计算资源极为匮乏的条件下,也许是靠自己的天赋吧,Monty形成了一种习惯,同时也是一种能力——自然而然地就能编写效率极高的代码。同时他还形成了一种异乎寻常的敏锐目光,也可能是与生俱来的吧,即能够预见到需要如何处理代码才能让代码在未来的发展中发挥作用,但他事先对于未来的发展状况却并不很了解。
此外,因为TcX是一家非常小的公司,Monty是股东之一,所以他对自己的代码很有发言权。尽管可能有许多程序员都像Monty一样才华横溢,但几乎没有人会与自己的代码厮守20多年。Monty却做到了。
Monty的努力、才华和对代码的所有权正是MySQL奇迹般得以建立的基础。
……
走进MySQL的历史,才能透彻了解MySQL的架构。因此,这两部分将放在同一章中介绍。
MySQL的历史
MySQL的历史可以追溯到1979年,当时Monty Widenius在一家名叫TcX的小公司中工作,他创建了一种用BASIC语言编写的报告工具,该工具在一台装有16KBRAM的4MHz计算机上运行。随着时间的推移,该工具被重新用C语言编写,并移植到unix系统上运行——这时它仍然是一种具有报告前端的低层次存储引擎。这种工具就是众所周知的Unireg。
在计算资源极为匮乏的条件下,也许是靠自己的天赋吧,Monty形成了一种习惯,同时也是一种能力——自然而然地就能编写效率极高的代码。同时他还形成了一种异乎寻常的敏锐目光,也可能是与生俱来的吧,即能够预见到需要如何处理代码才能让代码在未来的发展中发挥作用,但他事先对于未来的发展状况却并不很了解。
此外,因为TcX是一家非常小的公司,Monty是股东之一,所以他对自己的代码很有发言权。尽管可能有许多程序员都像Monty一样才华横溢,但几乎没有人会与自己的代码厮守20多年。Monty却做到了。
Monty的努力、才华和对代码的所有权正是MySQL奇迹般得以建立的基础。
……