查看: 27976|回复: 44

话题讨论:怎样阅读InnoDB存储引擎源码(已公布获奖)

[复制链接]
认证徽章
论坛徽章:
49
现任管理团队成员
日期:2012-10-18 17:10:46妮可·罗宾
日期:2018-04-03 13:57:49
发表于 2014-5-20 13:14 | 显示全部楼层 |阅读模式
话题讨论:怎样阅读InnoDB存储引擎源码

InnoDB是为处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。
InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件。

本期讨论话题:
    1.理解MySQL内核对于DBA的重要性;
    2.怎样阅读InnoDB存储引擎源码;
    3.说说读完试读章节后您的感想?

活动时间:2014年5月20日-6月5日

活动规则: 阅读我们提供的图书试读章节来参加活动,写试读心得或根据提供的话题参与讨论!

活动奖励:针对以上任意问题跟帖回答,我们会在讨论结束后,择优挑选5名网友赠送《MySQL内核:InnoDB存储引擎 卷1》这本书作为奖励。

图书介绍:
11.jpg                               
作  者:姜承尧,蒋鸿翔,饶珑辉,等著
出版 社:电子工业出版社
出版时间:2014-05-01
图书简介:《MySQL内核:InnoDB存储引擎 卷1》由资深MySQL专家亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,希望通过本书帮助用户真正了解一个数据库存储引擎的开发。


活动已结束,恭喜以下五位获奖者:
buptdream
myownstars
insnowind
2009532140
uang520


求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6348
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-5-20 13:15 | 显示全部楼层
喔..................
应该是本不错的书!
先占楼,准备阅读以下!

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6348
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-5-20 13:17 | 显示全部楼层
正好想学学mysql 数据库,

使用道具 举报

回复
认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2014-5-20 13:35 | 显示全部楼层
本帖最后由 buptdream 于 2014-5-27 11:57 编辑

好活动,支持

1.理解MySQL内核对于DBA的重要性;
    如果精通内核对于搞数据库的人来说,可以称得上专家。开源数据库的一个最大好处就是可以去读源码,根据自己的需求去进行个性化的开发,毕竟数据库根据业务最基本的也要分为OLTP,OLAP,系统类型的不同,决定了数据很多参数配置以及核心参数的调整也是不一样的。在调整这些参数前,如果不明白实现的原理,只是根据经验值去调整肯定是不行的,参数可以进行调整,比如减少事务表的长度,修改并发时程来减少锁争用等,如果不明白源码里面的实现方式,是没有办法去修改的,调整参数无法完成的个性化需求,可以通过源码去实现。
    如果商业数据库比如oracle开放源码,很多的核心原理得到确认,对于深入学习数据库的人来说是个很大的财富,但是这是不可能实现的。mysql的开源化,对于学习mysql来说个很大的宝库,从源码里可以看出各个引擎的实现方式,而这些核心的原理在很多文档里是看不到的。以前pub里有个大牛说过搞开源化的数据库,如果看不懂源码的话,只能在表面上做工作,搞几年下来,基本就是靠运维,部署,高一些读写分离的架构层面的运维工作,不能称其为专家。
     作为MYsql DBA,如果精通源码,对于数据库的理解会深入很多,阿里也是从源码上修改,可以支持自己的业务需求。MYSQL这几年的发展也是靠很多的人根据自己的需要写了很多分享行的代码,可见开源化对于mysql的发展起到重要作用。优秀的DBA需要去阅读一些代码,当比较极端的业务需求需要去定制化数据库的一些功能时,可以从源码级别开发设计适合自己的引擎,mysql在引擎方面预留了很多的接口,可以进行个性化开发。目前我能了解的有网易研究院搞的TNT引擎。
2.怎样阅读InnoDB存储引擎源码;
   接触mysql也有几年的时间,很多时候都是阅读官方文档,没有真正的从源码去分析和阅读。以前阅读过姜承尧的innodb引擎这本书,是从一些核心原理上进行讲解,非常深入和精彩。要想InnoDB存储引擎源码需要C和C++的基础,自己能够编译一些程序,确保在修改后能够编译成功。我看过InnoDB存储引擎源码,发现里面的源码量非常大,如果要通读一遍的话,需要很长的时间,而且也非常枯燥,读一些就难以坚持下去。
    经过一段时间的积累,我感觉是从一些比较常见的问题去阅读,比如读写,异步的实现,lock,latch,mutex的实现方式,还有内存管理的一些链表等去阅读,每天抽时间读一读,就当是消遣一下。对于索引,实务,缓存等内核的源码一点一点的去看,带着理论知识去理解源码,反过来用源码的实现原理来纠正和补充理论知识,在这个过程中可以快速提高自己。
3.说说读完试读章节后您的感想?
    这是本非常好的书,可以对着作者以前写的innodb引擎的那本书一起结合看。试读章节主要分享了两章内容:
     第一章是概括性的知识,介绍了INNODB存储引擎的历史,如果知道的同学可以直接略过,后续内容对于源码的版本,风格,编译的方式做了一些介绍,主要是给我们一个源码阅读的认识,对于作者分析的源码方法十分认可,按照层次去阅读,这样可以非常容易的去理解。对于我们这些源码分析的初学者来说可以按照作者的建议,进行按部就班的阅读。
     第二章介绍了一些INNODB存储引擎的内存管理的实现,基本数据结构,对于后续做个铺垫。以前都是直接学习理论,记住了这些的内容就可以了,现在从源码角度可以去看看实现方式。这些内容如果前期学的比较深入的话,可以大体看看,如果对这些链表,内存管理方法不是很清楚的可以好好读读,毕竟这是深入学习的基础。
      这是分析源码方式的卷1,后续期待作者更多精彩的内容分享。让更多的人喜欢并且可以阅读源码,为开源化数据库作出贡献。

使用道具 举报

回复
认证徽章
论坛徽章:
111
ITPUB9周年纪念徽章
日期:2010-10-08 09:34:03马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-03-20 10:09:22马上有钱
日期:2014-03-20 15:53:11马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11马上有对象
日期:2014-03-20 16:14:11马上加薪
日期:2014-03-20 16:14:11技术图书徽章
日期:2014-03-27 09:30:56
发表于 2014-5-20 17:16 | 显示全部楼层
好活动,支持

使用道具 举报

回复
认证徽章
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:19:06茶鸡蛋
日期:2013-01-10 11:06:07懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
发表于 2014-5-20 18:09 | 显示全部楼层
对innodb进行了深入的分析,感觉貌似还不错

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
41
喜羊羊
日期:2015-05-08 16:18:362014年新春福章
日期:2014-02-18 16:48:49技术图书徽章
日期:2014-01-26 14:02:05福特
日期:2013-12-27 00:16:54劳斯莱斯
日期:2013-12-20 16:46:55劳斯莱斯
日期:2013-12-02 16:08:54问答徽章
日期:2013-11-12 20:51:23奔驰
日期:2013-10-25 20:19:39ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34马上加薪
日期:2014-02-18 16:48:49
发表于 2014-5-20 20:15 | 显示全部楼层
1.理解MySQL内核对于DBA的重要性;
是非常重要,但还是觉得不能为了阅读源码而阅读,技术人员永远是为业务服务的。

不过做为一般般的DBA的我还是非常有兴趣,目的也非常明确,更加深入数据库原理,如有机会最好能根据业务特点,定制适合自己的MySQL分支,个人观点。

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
41
喜羊羊
日期:2015-05-08 16:18:362014年新春福章
日期:2014-02-18 16:48:49技术图书徽章
日期:2014-01-26 14:02:05福特
日期:2013-12-27 00:16:54劳斯莱斯
日期:2013-12-20 16:46:55劳斯莱斯
日期:2013-12-02 16:08:54问答徽章
日期:2013-11-12 20:51:23奔驰
日期:2013-10-25 20:19:39ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34马上加薪
日期:2014-02-18 16:48:49
发表于 2014-5-20 20:15 | 显示全部楼层
1.理解MySQL内核对于DBA的重要性;
是非常重要,但还是觉得不能为了阅读源码而阅读,技术人员永远是为业务服务的。

不过做为一般般的DBA的我还是非常有兴趣,目的也非常明确,更加深入数据库原理,如有机会最好能根据业务特点,定制适合自己的MySQL分支,个人观点。

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
41
喜羊羊
日期:2015-05-08 16:18:362014年新春福章
日期:2014-02-18 16:48:49技术图书徽章
日期:2014-01-26 14:02:05福特
日期:2013-12-27 00:16:54劳斯莱斯
日期:2013-12-20 16:46:55劳斯莱斯
日期:2013-12-02 16:08:54问答徽章
日期:2013-11-12 20:51:23奔驰
日期:2013-10-25 20:19:39ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34马上加薪
日期:2014-02-18 16:48:49
发表于 2014-5-20 20:18 | 显示全部楼层
话说转做MySQL已经一年多了,没有C/C++底子,研究这个是个头疼的事情

使用道具 举报

回复
论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
发表于 2014-5-20 22:08 | 显示全部楼层
支持。。。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表