读书频道 > 网站 > 网页设计 > MySQL内核:InnoDB存储引擎
1.3.1 源码结构
14-06-03    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > MySQL内核:InnoDB存储引擎

《MySQL内核:InnoDB存储引擎卷1》由资深MySQL专家亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了Inno立即去当当网订购

1.3 源码风格

1.3.1 源码结构

除了存储引擎接口文件采用C++,以及少量的嵌入式汇编语言,InnoDB存储引擎绝大部分的代码都采用C语言进行编码实现。其源码结构与另一开源操作系统Linux比较相似,模块划分十分清晰,大部分模块被分解在不同的.c文件中。同时,每个模块的实现放在一个单独的文件夹下,文件的命名规则为“模块名0子模块能名.c”。例如关于B+树索引模块的文件名为btr/btr0xxx.c。

.h头文件与.c文件不同,其统一放在include文件夹下,例如lock模块的头文件位于include/lock0lock.h。在include文件夹下,除了.h文件外,还存在.ic文件。这类文件为每个模块定义了内联函数(非DEBUG模式下)。可以发现在这些文件中,函数的定义都包含宏UNIV_INLINE,该宏的定义位于文件univ.i中,具体定义如下所示。

#if (!defined(UNIV_DEBUG) &&!defined(INSIDE_HA_INNOBASE_CC) && !defined(UNIV_MUST_
NOT_INLINE))
/* Definition for inline version */
#ifdef __WIN__
#define UNIV_INLINE    __inline
#else
/* config.h contains the right def for ‘inline’ for the current compiler */
#if (__GNUC__ == 2)
#define UNIV_INLINE  extern inline
#else
/* extern inline doesn’t work with gcc 3.0.2 */
#define UNIV_INLINE  static inline
#endif
#e ndif

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站