随笔分类 -  MySQL技术内幕-InnoDB存储引擎

摘要:前面提到缓冲池的设计是为了协调CPU速度和磁盘速度的鸿沟。如果一条DML语句改变了页中的记录,那么此页就是脏的,即缓冲池中的页的版本比磁盘的新。数据库需要将新版本的页刷回到磁盘。 再提一点,当前事务数据库系统普遍采用的都是 Write Ahead Log 策略,即当事务提交时,先写重做日志,再修改页 阅读全文
posted @ 2021-08-27 15:22 傑0327 阅读(63) 评论(0) 推荐(0) 编辑
摘要:开发多用户、数据库驱动的应用时,最大的难点是:一方面要最大程度的利用数据库的并发访问,一方面还要确保每个用户能以一致的方式读取和修改数据,为此有了锁的机制。 6.1 什么是锁 锁机制用于管理对共享资源的并发访问。InnoDB除了会在行级别上对表数据上锁,也会在数据库内部其他多个地方上锁,从而允许对多 阅读全文
posted @ 2020-04-18 16:01 傑0327 阅读(246) 评论(0) 推荐(0) 编辑
摘要:5.3 B+ 树 B+ 树是为磁盘或其他直接存储辅助设备设计的一种平衡查找树。在B+树中,所有记录都是按照键值大小顺序存放在同一层的叶子节点上,由叶子节点指针进行连接,双向链表连接。 5.3.1 B+ 树的插入操作 考虑一下三种情况: Leaf Page满 Index Page 满 操作 No No 阅读全文
posted @ 2020-04-17 11:59 傑0327 阅读(593) 评论(0) 推荐(0) 编辑
摘要:本章将重点分析表的物理存储特征,即数据在表中是如何组织存放的。也就是说,表就是关于特定实体的数据集合,这也是关系型数据库模型的核心。 4.1 索引组织表 在 InnoDB存储引擎中,表都是按照主键顺序存放的,这样的存储方式的表称为索引组织表。如果创建表时没有显式的定义主键,则按照如下方式选择或创建主 阅读全文
posted @ 2020-04-14 08:09 傑0327 阅读(422) 评论(0) 推荐(0) 编辑
摘要:3.5 表结构定义文件 MySQL 都有一个以frm为后缀的文件,该文件记录了该表的表结构定义。 frm还用来存放视图的定义,如用户创建了一个v_a 视图,那么对应会产生一个v_a.frm 文件,用来记录视图的定义。该文件是文本文件,可用cat查看。 3.6 InnoDB存储引擎文件 InnoDB文 阅读全文
posted @ 2020-04-14 07:59 傑0327 阅读(348) 评论(0) 推荐(1) 编辑
摘要:2.1 InnoDB存储引擎概述 InnoDB存储引擎是第一个完整支持ACID事务的MySQL存储引擎,其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效的利用内存和CPU。 2.2 InnoDB存储引擎版本 从MySQL5.1 版本时,MySQL数据库允许存储引擎开 阅读全文
posted @ 2020-04-13 15:53 傑0327 阅读(275) 评论(0) 推荐(0) 编辑
摘要:一、MySQL体系结构和存储引擎 尽管各个平台在底层(如线程)实现方面都各不相同,但MySQL基本上能保证在各个平台上的物理结构的一致性。因此,用户应该能很好的理解MySQL数据库在所有这些平台是如何运作的。 1.1 定义数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数 阅读全文
posted @ 2020-04-08 15:06 傑0327 阅读(316) 评论(0) 推荐(0) 编辑