下载 >  数据库 >  MySQL > MySQL内核 INNODB存储引擎-卷1-高清-完整目录-2014年5月

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

MySQL内核 INNODB存储引擎-卷1-高清-完整目录-2014年5月
2018-04-16 上传大小:140.84MB
想读
分享
收藏 举报
读《mysql内核innoDB存储引擎》
MySQL内核:InnoDB存储引擎 卷1 高清扫描版

MySQL内核InnoDB存储引擎(卷1) 目录 1 概览 2 基本数据结构和算法 3 同步机制 4 重做日志 5 mini-transaction(mtr) 6 存储管理 7 记录 8 索引页 9 锁 10 B+树索引 11 Insert Buffer 12 缓冲池 13 事务处理 14 数据字典 15 服务管理 概览 基本数据结构和算法 同步机制 rw-lock/latch s-/x-:x-可递归,s-不可?;以spin获得,一段时间后进入wait array(信号量?) p38 若sync_primary_wait_array中1000个cell都已分配,则ut_error触发crash 当持有latch的线程释放latch后,调用sync_array_signal_object唤醒等待线程 重做日志 p42 redo log原来保证事务的持久性(D),undo log用于回滚和MVCCinnodb_flush_log_at_trx_commit=0/1/2redo log VS. bin log 前者记录的是页的物理逻辑操作日志设计思想:物理日志记录页内的修改(old-new value),逻辑日志记录对表的操作(insert/delete) LSN(表示事务写入redo log的字节量?) 对‘检查点’,表示刷新到磁盘的位置?——不管怎么说,LSN有一种‘随时间单调变化’的性质 检查点:将缓冲池中的页刷新到磁盘 sharpfuzzy* redo日志的大小是固定的(3GB)->归档日志ib_logfile<N>redo日志块(512B-12-8) 和磁盘扇区大小一样,保证原子性,不需要double write? 重做日志组*组提交:fsync -> log_flush_up_to 会对最后一个日志块进行复制恢复:recovery_from_checkpoint_start 表空间第一个页头部的FIL_PAGE_FILE_FLUSH_LSN记录了数据库关闭时最后刷新页的LSNrecv_parse_or_apply_log_rec_bodyrecv_add_to_hash_tablerecv_recover_pagerecv_read_in_area 判断页所在相邻的32个页? mini-transaction(mtr) FIX rules:修改页之前需要持有该页的latchWAL 每个页需要有一个LSN?LSN溢出怎么办? Force-Log-at-Commitmtr_t mtr; mtr_start(&mtr;); ... mtr_commit(&mtr;); 提交时若mtr->modified==TRUE,先修改缓冲池中的页*1,然后释放log_sys->mutex(这是一个热点) *1 log_reserve_and_write_fast/log_write_slow 快速/慢速2个路径 更新多行记录时,MLOG_MULTI_REC_END 存储管理 页:(space_id, offset) 16KB1 extent = 64 连续的page space header 段(segment) 每张用户表至少2个段:聚集索引(B+树)的叶子节点和非叶子节点段一个段最多可以管理32个独立的页,和若干区 表空间数据结构:fil_system/space/node_struct4个异步I/O线程:异步读、异步写、插入缓存、重做日志 记录 物理记录 p102 用户记录的heap no总是从2开始 伪记录:Infimum/Supremum(感觉将像是双链表的first/last) p103 VARCHAR类型的NULL不占用磁盘空间,而CHAR NULL用0x00填充大记录:BLOB/TEXT(溢出页,extern属性) 逻辑记录 dtuple_struct,对大记录是big_rec_structB+树索引只定位页,页内记录需要二分扫描 mtype/prtype 行记录版本(MVCC只是列?):通过隐藏的事务ID列 read_view_struct: low/up_limit_idtrx_ids, n_trx_idscreator p114 函数read_view_sees_trx_id用来判断当前事务是否可以读记录的当前版本,不是,则row_sel_build_prev_vers_for_mysql 索引页 Page Header 页内记录根据主键是逻辑顺序,不是物理顺序 Page Directory(定位记录在页内的位置) slot?offset的主键逆序记录 Page Cursor* 锁 p136 理论上,隔离级别越低,事务请求的锁越少或保持锁的时间越短幻读:谓词锁 --> key-range locking --> next/previous-key lockingp138 意向锁:意味着事务希望在更细粒度上加锁 InnoDB是行级锁,不会阻止全表扫描以外的请求 lock_rec_struct = { space, page_no, n_bits } 所有锁对象通过kernel_mutex进行保护(又一个热点!) 优化:细粒度拆分? p144 LOCK_GAP(代表范围锁不包含端点)显式锁和隐式锁**(略)行锁的维护*(重点,略) 插入更新PURGE一致性的锁定读页的分裂页的合并 自增锁(atomic?)死锁* B+树索引 聚集 / 辅助分裂操作:btr_page_split_and_insert合并:btr_compress查找:btr_cur_search_to_nth_level p203 对唯一约束的键值,需要使用模式PAGE_CUR_GE,而不是LElatch_modecursor DML操作 乐观插入:btr_cur_optimistic_insert非主键更新(主要是列的大小会不会发生变化) btr_cur_optimistic_update --> btr_cur_pessimistic_update(例略) 主键更新 删除 持久游标 btr_pcur_struct自适应哈希索引* Insert Buffer 将多次插入合并为一次操作(提高了非唯一约束辅助索引的插入性能)p237 实现最为困难的在于对死锁的处理 页逻辑层次划分:非IB页、IB非bitmap页、bitmap页p241 异步I/O线程可能引起死锁问题 --> rw_lock_x_lock_move_ownership 缓冲池 LRU、Free和Flush链表预读 p258 随机预读 要满足32个页中9个已经访问过且都是活跃的才可能触发 线性预读*逻辑预读 页的刷新 部分写问题(?) --> double write(存在于内存的表空间,大小为2MB,这意味着最多128页/次刷新) 事务处理 分类:扁平、带保存点的扁平、链、嵌套、分布式事务系统段*doublewrite段*undo日志存储 一致性的非锁定读 p282 读取快照不需要加锁 undo日志实现:回滚段 + undo段 trx_undo_struct undo记录purge*rollback 7B roll_ptr隐藏列 {rseg_id(1), page_no(4), offset(2)}3个回滚类型:TRX_SIG_{TOTAL_ROLLBACK, ROLLBACK_TO_SAVEPT, ERROR_OCCURRED} commit 数据字典 服务管理

立即下载
MySQL内核:InnoDB存储引擎 卷1 高清完整版带书签.pdf

MySQL内核:InnoDB存储引擎 卷1 高清完整版带书签.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

立即下载
MYSQL内核:INNODB存储引擎 卷1

本书由资深MySQL专家亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,希望通过本书帮助用户真正了解一个数据库存储引擎的开发。

立即下载
MYSQL内核:INNODB存储引擎 卷1pdf
MySQL内核 InnoDB存储引擎 姜承尧著

MySQL内核 InnoDB存储引擎 姜承尧著 共15章 361页 两分分享

立即下载
Mysql内核:INNODB存储引擎--《十一》Insert Buffer
深入了解MySQL存储引擎-------InnoDB
MySQL内核 InnoDB存储引擎 卷1_姜承尧著

MySQL内核 InnoDB存储引擎 卷1_姜承尧著MySQL内核 InnoDB存储引擎 卷1_姜承尧著MySQL内核 InnoDB存储引擎 卷1_姜承尧著

立即下载
mysql内核 innodb存储引擎

《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔,中外数据库专家联袂推荐,权威性毋庸置疑。内容深入,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计和管理高性能、高可用的数据库系统提供绝佳的指导。注重实战,全书辅有大量的案例,可操作性极强。全书首先全景式地介绍了MySQL独有的插件式存储引擎,分析了MySQL的各种存储引擎的优势和应用环境。接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份,以及InnoDB的性能调优等重要的知识,最后深入解析了InnoDB存储引擎的源代码结构,对大家阅读和理解InnoDB的源代码有重要的指导意义。《MySQL技术内幕:InnoDB存储引擎》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。

立即下载
mysql的innodb存储引擎(三)
mysql数据库开启innodb储存引擎方法
MySQL内核InnoDB存储引擎(卷1)笔记
MYSQL内核:INNODB存储引擎

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

立即下载
MYSQL内核:INNODB存储引擎 卷1(高清目录)

MySQL内核:InnoDB存储引擎 卷1》由资深MySQL专家,机工畅销图书作者亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,希望通过《MySQL内核:InnoDB存储引擎 卷1》帮助用户真正了解一个数据库存储引擎的开发。 《MySQL内核:InnoDB存储引擎 卷1》可以成为带领读者进入数据库存储引擎的内核开发,帮助那些从事MySQL数据库的相关行业从业人员。同时,《MySQL内核:InnoDB存储引擎 卷1》也适合对于研究生阶段有志于数据库内核开发的同学。 -- 摘自豆瓣

立即下载
MySQL内核_InnoDB存储引擎(卷1)_753281.pdf

MySQL内核_InnoDB存储引擎(卷1)_753281.pdf

立即下载
MySQL技术内幕 InnoDB存储引擎(第2版)高清扫描带完整目录.pdf

MySQL技术内幕 InnoDB存储引擎(第2版)高清扫描带完整目录.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除! 目录: 前言 第1章 MySQL体系结构和存储引擎 1 1.1 定义数据库和实例 1 1.2 MySQL体系结构 3 1.3 MySQL存储引擎 5 1.3.1 InnoDB存储引擎 6 1.3.2 MyISAM存储引擎 7 1.3.3 NDB存储引擎 7 1.3.4 Memory存储引擎 8 1.3.5 Archive存储引擎 9 1.3.6 Federated存储引擎 9 1.3.7 Maria存储引擎 9 1.3.8 其他存储引擎 9 1.4 各存储引擎之间的比较 10 1.5 连接MySQL 13 1.5.1 TCP/IP 13 1.5.2 命名管道和共享内存 15 1.5.3 UNIX域套接字 15 1.6 小结 15 第2章 InnoDB存储引擎 17 2.1 InnoDB存储引擎概述 17 2.2 InnoDB存储引擎的版本 18 2.3 InnoDB体系架构 19 2.3.1 后台线程 19 2.3.2 内存 22 2.4 Checkpoint技术 32 2.5 Master Thread工作方式 36 2.5.1 InnoDB 1.0.x版本之前的Master Thread 36 2.5.2 InnoDB1.2.x版本之前的Master Thread 41 2.5.3 InnoDB1.2.x版本的Master Thread 45 2.6 InnoDB关键特性 45 2.6.1 插入缓冲 46 2.6.2 两次写 53 2.6.3 自适应哈希索引 55 2.6.4 异步IO 57 2.6.5 刷新邻接页 58 2.7 启动、关闭与恢复 58 2.8 小结 61 第3章 文件 62 3.1 参数文件 62 3.1.1 什么是参数 63 3.1.2 参数类型 64 3.2 日志文件 65 3.2.1 错误日志 66 3.2.2 慢查询日志 67 3.2.3 查询日志 72 3.2.4 二进制日志 73 3.3 套接字文件 83 3.4 pid文件 83 3.5 表结构定义文件 84 3.6 InnoDB存储引擎文件 84 3.6.1 表空间文件 85 3.6.2 重做日志文件 86 3.7 小结 90 第4章 表 91 4.1 索引组织表 91 4.2 InnoDB逻辑存储结构 93 4.2.1 表空间 93 4.2.2 段 95 4.2.3 区 95 4.2.4 页 101 4.2.5 行 101 4.3 InnoDB行记录格式 102 4.3.1 Compact行记录格式 103 4.3.2 Redundant行记录格式 106 4.3.3 行溢出数据 110 4.3.4 Compressed和Dynamic行记录格式 117 4.3.5 CHAR的行结构存储 117 4.4 InnoDB数据页结构 120 4.4.1 File Header 121 4.4.2 Page Header 122 4.4.3 Infimum和Supremum Records 123 4.4.4 User Records和Free Space 123 4.4.5 Page Directory 124 4.4.6 File Trailer 124 4.4.7 InnoDB数据页结构示例分析 125 4.5 Named File Formats机制 132 4.6 约束 134 4.6.1 数据完整性 134 4.6.2 约束的创建和查找 135 4.6.3 约束和索引的区别 137 4.6.4 对错误数据的约束 137 4.6.5 ENUM和SET约束 139 4.6.6 触发器与约束 139 4.6.7 外键约束 142 4.7 视图 144 4.7.1 视图的作用 144 4.7.2 物化视图 147 4.8 分区表 152 4.8.1 分区概述 152 4.8.2 分区类型 155 4.8.3 子分区 168 4.8.4 分区中的NULL值 172 4.8.5 分区和性能 176 4.8.6 在表和分区间交换数据 180 4.9 小结 182 第5章 索引与算法 183 5.1 InnoDB存储引擎索引概述 183 5.2 数据结构与算法 184 5.2.1 二分查找法 184 5.2.2 二叉查找树和平衡二叉树 185 5.3 B+树 187 5.3.1 B+树的插入操作 187 5.3.2 B+树的删除操作 190 5.4 B+树索引 191 5.4.1 聚集索引 192 5.4.2 辅助索引 196 5.4.3 B+树索引的分裂 200 5.4.4 B+树索引的管理 202 5.5 Cardinality值 210 5.5.1 什么是Cardinality 210 5.5.2 InnoDB存储引擎的Cardinality统计 212 5.6 B+树索引的使用 215 5.6.1 不同应用中B+树索引的使用 215 5.6.2 联合索引 215 5.6.3 覆盖索引 218 5.6.4 优化器选择不使用索引的情况 219 5.6.5 索引提示 221 5.6.6 Multi-Range Read优化 223 5.6.7 Index Condition Pushdown(ICP)优化 226 5.7 哈希算法 227 5.7.1 哈希表 228 5.7.2 InnoDB存储引擎中的哈希算法 229 5.7.3 自适应哈希索引 230 5.8 全文检索 231 5.8.1 概述 231 5.8.2 倒排索引 232 5.8.3 InnoDB全文检索 233 5.8.4 全文检索 240 5.9 小结 248 第6章 锁 249 6.1 什么是锁 249 6.2 lock与latch 250 6.3 InnoDB存储引擎中的锁 252 6.3.1 锁的类型 252 6.3.2 一致性非锁定读 258 6.3.3 一致性锁定读 261 6.3.4 自增长与锁 262 6.3.5 外键和锁 264 6.4 锁的算法 265 6.4.1 行锁的3种算法 265 6.4.2 解决Phantom Problem 269 6.5 锁问题 271 6.5.1 脏读 271 6.5.2 不可重复读 273 6.5.3 丢失更新 274 6.6 阻塞 276 6.7 死锁 278 6.7.1 死锁的概念 278 6.7.2 死锁概率 280 6.7.3 死锁的示例 281 6.8 锁升级 283 6.9 小结 284 第7章 事务 285 7.1 认识事务 285 7.1.1 概述 285 7.1.2 分类 287 7.2 事务的实现 294 7.2.1 redo 294 7.2.2 undo 305 7.2.3 purge 317 7.2.4 group commit 319 7.3 事务控制语句 323 7.4 隐式提交的SQL语句 328 7.5 对于事务操作的统计 329 7.6 事务的隔离级别 330 7.7 分布式事务 335 7.7.1 MySQL数据库分布式事务 335 7.7.2 内部XA事务 340 7.8 不好的事务习惯 341 7.8.1 在循环中提交 341 7.8.2 使用自动提交 343 7.8.3 使用自动回滚 344 7.9 长事务 347 7.10 小结 349 第8章 备份与恢复 350 8.1 备份与恢复概述 350 8.2 冷备 352 8.3 逻辑备份 353 8.3.1 mysqldump 353 8.3.2 SELECT...INTO OUTFILE 360 8.3.3 逻辑备份的恢复 362 8.3.4 LOAD DATA INFILE 362 8.3.5 mysqlimport 364 8.4 二进制日志备份与恢复 366 8.5 热备 367 8.5.1 ibbackup 367 8.5.2 XtraBackup 368 8.5.3 XtraBackup实现增量备份 370 8.6 快照备份 372 8.7 复制 376 8.7.1 复制的工作原理 376 8.7.2 快照+复制的备份架构 380 8.8 小结 382 第9章 性能调优 383 9.1 选择合适的CPU 383 9.2 内存的重要性 384 9.3 硬盘对数据库性能的影响 387 9.3.1 传统机械硬盘 387 9.3.2 固态硬盘 387 9.4 合理地设置RAID 389 9.4.1 RAID类型 389 9.4.2 RAID Write Back功能 392 9.4.3 RAID配置工具 394 9.5 操作系统的选择 397 9.6 不同的文件系统对数据库性能的影响 398 9.7 选择合适的基准测试工具 399 9.7.1 sysbench 399 9.7.2 mysql-tpcc 405 9.8 小结 410 第10章 InnoDB存储引擎源代码的编译和调试 411 10.1 获取InnoDB存储引擎源代码 411 10.2 InnoDB源代码结构 413 10.3 MySQL 5.1版本编译和调试InnoDB源代码 415 10.3.1 Windows下的调试 415 10.3.2 Linux下的调试 418 10.4 cmake方式编译和调试InnoDB存储引擎 423 10.5 小结 424

立即下载
mysql之InnoDB存储引擎剖析
MySQL内核_InnoDB存储引擎(卷1)---文字版.pdf

MySQL内核_InnoDB存储引擎(卷1)---文字版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

立即下载
MySQL技术内幕 InnoDB存储引擎 第2版 高清完整中文PDF版

畅销书全新升级,第1版广获好评;资深MySQL专家撰写,全球知名MySQL数据库服务提供商Percona公司CTO作序推荐,国内多位数据库专家联袂推荐 基于MySQL 5.6,结合源代码,从存储引擎内核角度对InnoDB的整体架构、核心实现和工作机制进行深入剖析

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

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

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: