`

MySQL内核:InnoDB存储引擎 试读

 
阅读更多

    《MySQL内核:InnoDB存储引擎 卷1》从源码层次分析了InnoDB的体系结构、原理、工作机制等,结合实践案例,对我们想深入学习MySQL innoDB 内核原理来说,是不可多得的好书。

目前MySQL InnoDB 在各大互联网公司都得到了应用,如淘宝、网易、百度、google等。第1章介绍了InnoDB的发展历史及源码的基本结构。Innobase发展,同Msyql合作开源InnoDB存储引擎;到mysql、innobase都被Oracle收购,重新结合,一波三折。

 

思考:Mysql InnoDB引擎同 MyISAM 的比较

MyISAM是非事务安全型,而InnoDB是事务安全型。

MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

 

MyISAM支持全文类型索引,而InnoDB不支持全文索引。

。。。。

InnoDB存储引擎代码模块划分


基础:

FileMananger模块:对文件操作,如读写、异步I/O等

ConcurrencyManager:并发,封装引擎内部使用的Mutex、Latch等

Common utility:基本算法和数据结构

核心:

    索引、事务、LOCK、缓存、日志、存储等模块

InnoDB存储引擎以嵌入方式同Mysql结合。

 

第2章 介绍了InnoDB内存管理系统的基本实现及数据结构。采用内存堆的方式关联内存对象。通过一次性分配大块内存来减少内存申请(malloc)、释放(free)带来的开销。

分为缓冲池分配(从缓冲池中分配内存)、动态分配(直接系统分配:malloc函数)。



 

内存管理的层次结构

内存堆层

缓冲层、通用内存池

系统内存

 

内存堆层

 

内存堆类似stack,通过增加内存块增加空间,从stack top位置释放相应内存块。内存块之间以链表的形式管理。内存块结构:men_block_info_t(见书P9)

内存堆中各个内存块组织形式:(图02)



 内存堆分类:

 


 

内存堆创建函数:men_heap_create_func,通过不同分配方式(3种)初始化堆内存大小、指针。

 

通用内存池

 

Men_common_pool对象,数据结构:men_pool_struct,包括内存池分配的起始位置、大小size、已分配大小reserved;内存单元链表节点数组free_list。

通用内存池通过free_list[64]、men_area_struct组成伙伴系统。内存池分成64个内存区链表,以2^n(n<=64)分配内存。文中通过实例进行了明确的讲解:



 安规则将内存分割,再看申请空间大小进行更小分块。释放则将相连的空闲空间进行合并。

 

基本算法结构

本文还对基本的算法结构(哈希算法、双向链表(基于内存、磁盘)、动态数组),基本排序实现做了相应的介绍。  

双链表应用场景及区别:

内存双链表:缓冲池、事务、lock、文件管理等。用于内存中快速定位

 

磁盘双链表:表空间管理、事务管理、B树模块;用于建立磁盘中数据结构之间的关系。

 

从试读文章、目录结构来看,本书写的还是相当不错,内容比较深入浅出,直到阅读!

 

  • 大小: 28.2 KB
  • 大小: 46.4 KB
  • 大小: 14.6 KB
  • 大小: 9.8 KB
  • 大小: 80.7 KB
分享到:
评论

相关推荐

    MySQL内核:InnoDB存储引擎 卷1.pdf

    《MySQL内核:InnoDB存储引擎 卷1》由资深MySQL专家,机工畅销图书作者亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的...

    MySQL内核:InnoDB存储引擎 卷1.pdf.zip

    《MySQL内核:InnoDB存储引擎 卷1》是一本深度探讨MySQL数据库系统核心部分——InnoDB存储引擎的专业书籍。这本书以超高清的PDF格式呈现,包含详细的书签,便于读者快速定位和查阅相关内容。InnoDB作为MySQL中最常用...

    MYSQL内核:INNODB存储引擎

    可作为深入理解MySQL InnoDB存储引擎实现细节的研究学习。

    MYSQL内核:INNODB存储引擎 卷1.part3.rar

    MYSQL内核:INNODB存储引擎 卷1.part3.rar

    MYSQL内核:INNODB存储引擎 卷1.part2.rar

    MYSQL内核:INNODB存储引擎 卷1.part2.rar

    MYSQL内核:INNODB存储引擎 卷1.part1.rar

    MYSQL内核:INNODB存储引擎 卷1.part1.rar

    mysql内核 innodb存储引擎

    《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔,中外数据库专家联袂推荐,权威性毋庸置疑。内容深入,从源代码的角度深度解析了InnoDB的体系结构、实现原理、...

    MySQL技术内幕 InnoDB存储引擎.pptx

    "MySQL技术内幕 InnoDB存储引擎" 《MySQL技术内幕:InnoDB存储引擎》是一本深入解析InnoDB存储引擎的经典之作,由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。本书从源代码的角度深度解析了InnoDB的...

    MySQL内核 INNODB存储引擎-卷1-高清-完整目录-2014年5月

    MySQL内核 INNODB存储引擎-卷1-高清-完整目录-2014年5月

    MySQL技术内幕 InnoDB存储引擎.pdf

    最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。 1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 ...

    MySQL技术内幕InnoDB存储引擎-读书笔记.pdf

    MySQL技术内幕InnoDB存储引擎-读书笔记.pdf

    MySQL 技术内幕:InnoDB存储引擎

    根据提供的标题“MySQL 技术内幕:InnoDB存储引擎”,我们可以深入探讨InnoDB存储引擎的相关知识点,包括其架构原理、特点、应用场景以及优化方法等方面。 ### InnoDB存储引擎概述 InnoDB是MySQL中最常用的一种...

    MySQL技术内幕:InnoDB存储引擎.docx

    MySQL 技术内幕:InnoDB 存储引擎 MySQL 是一款流行的开源关系型数据库管理系统(RDBMS),自 20 世纪 70 年代以来一直作为全球众多企业和开发者的首选数据库之一。MySQL 具有强大的性能、可靠性和易用性,使其在 ...

    MySQL技术InnoDB存储引擎_姜承尧_第2版

    《MySQL技术内幕_InnoDB存储引擎_姜承尧_第2版》是一本深入探讨MySQL数据库中InnoDB存储引擎的专业书籍。作者姜承尧是数据库领域的知名专家,他的这部著作详细阐述了InnoDB引擎的核心概念、设计原理以及实际操作技巧...

    mysql存储引擎(csdn)————程序.pdf

    InnoDB存储引擎是MySQL的默认引擎,尤其在高并发和事务处理的场景下被广泛使用。InnoDB的最大特点是它支持事务处理(ACID属性:原子性、一致性、隔离性、持久性),这意味着在多用户环境下,InnoDB可以保证数据的...

    MySQL数据库:MySQL存储引擎.pptx

    InnoDB是事务型数据库的首选引擎,为MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎,其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。 ;2.MyISAM

    static-mkk#something#MySQL技术内幕:innodb存储引擎1

    第一章:mysql存储引擎1.innodb存储引擎支持事务;行锁设计;支持外键;支持非锁定读。4种事务隔离级别,默认为repeatable,同时使用next-k

    MySQL技术内幕InnoDB存储引擎.rar

    《高性能mysql(第3版)》是最具代表性的进阶书籍没有之一,它是 MySQL 领域的经典之作,内容涵盖 MySQL 架构和历史,性能分析,优化,复制、备份和恢复,高可用与高可扩展性。值得每一个后端工程师多次阅读,无论是...

    mysql技术内幕innodb存储引擎学习.zip

    本资料包“mysql技术内幕innodb存储引擎学习.zip”显然是针对深入理解InnoDB存储引擎的学习资源,其中可能包含详细的技术讲解、实践案例和相关教程。 InnoDB存储引擎的核心特性包括: 1. **事务支持**:InnoDB提供...

Global site tag (gtag.js) - Google Analytics