基本信息
编辑推荐
新一轮MySQL热浪袭来
翻开最新GA的MySQL源码
国内首个开源的MySQL存储引擎
跟踪Sun收购MySQL后的动态变化
国内首次披露的 MySQL 内核视频讲解
国内首款开源MySQL存储引擎Lillian的代码
MySQL Bazaar中文分析结果
内容简介
计算机书籍
本书由Sun中国工程院的MySQL专家讲解MySQL内核设计和实现。作者对MySQL分而治之,将复杂的MySQL内核划分成多个功能子系统,从而化解了理解子系统的各个难点。
本书共分12章。第1章介绍MySQL的历史渊源。第2章介绍MySQL数据库的架构。第3章深入了解MySQL源代码,第4章解释关键的类和算法。从第5章开始直到最后,按各子系统进行讲解,内容包括连接和网络系统、服务器线程和资源管理、查询解析与优化器、安全管理系统、存储引擎接口详解与实践、经典存储引擎、日志功能及实践分析和其他子系统。
配书光盘中提供了相关的MySQL源代码。
本书适合对内核编程设计感兴趣的技术人员和开发者以及在学习、工作中使用MySQL数据库的各类技术人员阅读。由于主要内容均涉及到MySQL内核源代码,所以学习者应当具备C/C++预备知识。
目录
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
前言
不知不觉涉足MySQL已经几个年头了,与其他有志于此的朋友一样,我也经历了学习——应用——关注——再学习的过程。也就是说,我也是从漫无边际到茫然无措,再到初窥门径,转而觉得心有戚戚焉这一路走下来的。再幸得公司提供学习、实践MySQL的机会和环境,其中甘苦,犹然在心。
在我刚开始产生把自己的MySQL经验集结成册、撰写成书的念头时,我思绪万千,不知道该从何下手。我实在不想落入MySQL传统书籍的窠臼,照猫画虎地再写这么一本。不错,前人著述备矣,但我既然要写,就要写出点与众不同的东西来,我的书该如何定位,说实话,这确实让人颇费思量。
纵观书海,有关MySQL的书籍大多止步于数据库管理、数据库应用,至此尚没有深入讨论其原理和内核的资料。灵感终于浮现出来,我意识到自己可以从一个全新的视角看待MySQL。开发内核并不是我的工作,但研究内核却是我的嗜好。这些年来,我不断搜集与内核有关的奇闻轶事,包括Linux、Solaris和MySQL的。依靠这些日积月累的材料,我可以写一本内核学习的书籍。本质上,这本书是描述MySQL内核是如何设计和实现的,所提供的信息倾向于实用。通过本书,你就可以做一些数据库内核开发的工作了,甚至定制你需要的数据库。做IT的人一般都似乎注重实效的,因此,这是一本偏重实践的书,它应当是有趣、易读而且有帮助的。
我希望读者可以从这本书中领略到更多MySQL内核的精妙之处,包括写出来的和没写出来的,也希望读者能从阅读本书和读内核代码开始跨越到开始尝试改进快速发展的MySQL内核代码。如果你仅仅是兴致所至,读书自娱,那也希望你能从中找到乐趣。当然如果你需要一本带有“内核”或“核心”字样的书摆在书柜上以显示你的卓越技术和资深地位,这也是个不错的选择。
不管你学习MySQL的目的是什么,我都衷心地希望你能喜欢我的书。
本书结构
本书共分成十二章。
第一章我们从MySQL的历史渊源说开去,谈论其大是大非。第二章的数据库理论虽看似空洞外加一点索然无味,但实践终究皈依于理论。正所谓勿在浮沙筑高台。
第三章开始我们深入MySQL原汁原味的源代码,并在第四章中解释了关键的类和算法,使得读者面对茫茫code海可以运筹帷幄,处乱不惊。
从第五章开始直到最后,我们将按各子系统进行排兵布阵。从第五章的网络子系统到第十二章的复制子系统,读者可以章章为营。这些章节中,最值得读者细细品味的是第九章。第九章中我们和读者一起动手编写自己的MySQL存储引擎Lillian。..
全书的第八、十二章及附录一、二由张海编著,黄健昌在百忙之中编写了第十一章,其他章节由我完成。
阅读对象
我们相信这本书将为学习、工作中使用MySQL数据库的各类技术人员提供非常有用的参考。
应用程序开发者能够在这本书中找到JDBC、ODBC后面的MySQL数据库如何实现信息的存储和读取。这些信息能帮助开发人员在开发前台应用程序时,理解每次数据调用的性能、影响和实现细节。资源管理、网络和通信、查询解析优化等对这类读者来说是最有用的章节。
项目管理人员和系统分析师可以学到主要MySQL子系统的行为特征,了解MySQL的长处以及短处。在系统设计时,可为更好地选择合适的数据库提供参考。
技术支持人员、咨询师和DBA将发现大量关于MySQL实现细节的信息。每一章提供的源码解析和数据结构可帮助调试、优化和操作MySQL数据库。
如果只是刚刚入门的MySQL用户,可在开头几章找到总体上的框架概述,会有一种一览众山小的感觉。又可以通过后面章节的学习实践加深对MySQL的认识。
除了技术社区的用户之外,在学校里面研究数据库系统的人员将发现本书是很好的参考,做到理论结合实际。MySQL数据库是一个高可用、速度快且使用面广的数据库系统,随着MySQL 5.4版本的推出,适用于不同的工作负载,从单处理器台式机到具有大量内存和CPU线程的SMP系统。MySQL数据库为商业数据处理、Web服务和电信系统提供的Cluster 7.0高可用性和可扩展性是业内首屈一指的。研究这一数据库系统可以学到很多知识。
相关材料和光盘
序言
得知ISVE组的两个人正在写MySQL内核方面的书时,感觉很惊讶。的确,Sun中国工程研究院的人写书揭示软件内核,是——件非常值得注意的事情。
几年前,我们已对MySQL的发展有所关注。从Sun收购MySQL至今,MySQL仍然是最受欢迎的开源数据库软件。开源、免费的MySQL,让你可以用近乎零成本建立容量巨大的数据库或者网上交易系统,再加上Sun和无数社区精英的技术支持,不风靡都很难!
但这些年来,MySQL中文资料较为匮乏,基本上处在初、中级的水准,缺乏足够的深度。人们对该软件往往知其然而不知其所以然。这导致了在中国MySQL数据库高级人才相对较少。
《MySQL核心内幕》这本书是研究MySQL内核的绝佳指导资料,真正做到了“授人以渔”。
打开MySQL的源代码稍作观察,便可发现其规模之大,有如阿房宫——“覆压三百余里,隔离天日”;其关系错综复杂,可谓“廊腰缦回,檐牙高啄,各抱地势,勾心斗角”。这无疑给想深入理解MySQL的人士出了一个难题。
在《MySQL核心内幕》这本书中,作者将MySQL分而治之,将复杂的MySQL内核瞬间瓦解成多个功能子系统。每一章中,作者抽丝剥茧,化解理解子系统的各个难点。所以,你面对的不再仅仅是赤裸裸的代码,而是真正能雅俗共赏的设计艺术。
在读书的同时,一定要亲身实践:理解内核某部分的捷径就是对它做出修改,这样才能越过代码本身看到内核的深层机理。读者带着一份耐心、一份执着,闯过一道道难关,直到阅读完本书的最后一章时,会有“蓦然回首,那人却在灯火阑珊处”的欣喜感觉!
相信在本书的带领下,中文地区MySQL用户和支持者的水平能够更上一层楼。
Kevin Song
Sun中国工程院院长
序(二)
MySQL在业界被誉为世界上最流行的开源数据库,它提供了节省成本的数据库管理系统的可行性新方案。
MySQL有许多好处,不仅价格具有竞争力,而且其作为“开源”的领导者,做到了代码全开放;并提供了专业的“企业级随机应变”能力。MySQL的开源可用性让所有用户和工程师们能够在代码级了解架构和行为。
Sun收购MySQL的开源业务,提供了经验丰富的技术支持工程师,以此可以保障为客户提供高品质的服务。
要了解源代码级的全部细节和优点,工程师们应当明确MySQL内核的基本原理。有祝定泽这样一位训练有素的MySQL专家帮助工程师和读者了解MySQL的哲学和设计,我相信这本书定能实现这样的任务。让我们在丌源的闩山世界中快乐徜徉。
预祝取得成功!
亚太区首席MySQL顾问
梶山 隆辅
媒体评论
Kevin Song--Sun中国工程院院长
MySQL在业界被誉为世界上最流行的开源数据库,它提供了成本核算的数据库管理系统的可行性新方案。Sun收购MySQL的开源业务通过给客户提供高品质的服务提供经验丰富的技术支持工程师。要了解源代码水平的全部细节和好处,工程师们要了解MySQL内核的基本原理 。我相信这本书完成了这项任务,祝定泽,一个有成就的MySQL专家,帮助工程师和读者了解MySQL的哲学和设计。享受开放源码的自由世界。 让我们庆祝这种可能性!
亚太区首席MySQL顾问..
梶山 隆輔
作为一名开发人员,不应该只限于使用工具,而应该去了解其原理及本质。了解一个工具原理最好的方法莫过于从源代码着手。《MySQL 核心内幕》为想要了解MySQL核心机理的国内开发人员打开了一扇门,作者通过理论、实践相结合,对系统架构及核心代码进行了详尽的阐述,本书对于热爱MySQL开源软件,同时喜欢刨根问底的技术人员是一本必看的好书。
--金融界架构师 王志刚
《MySQL 核心内幕》是国内第一本解析MySQL源代码的著作,深刻揭示了 MySQL的内部机理、阐述了MySQL各子系统的关联、并实例编写了自定义存储引擎,相信从事MySQL相关工作的技术人员可从中受益。
---百度高级DBA 吴诗展