随笔分类 - MySQL技术内幕——InnoDB存储引擎
梳理重点知识,加深印象
摘要:1. MySQL索引为什么使用B+树数据结构,而不是B树,红黑树等? 1.1 二叉查找树/二叉搜索树 下图b为二叉查找树的典型结构,其特点为: 任意节点左子树不为空,则左子树的值均小于根节点的值 任意节点右子树不为空,则右子树的值均大于于根节点的值 任意节点的左右子树也分别是二叉查找树 没有键值相等
阅读全文
摘要:1. 事务 事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成。事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务的操作中,要么都做修改,要么都不做。ACID特性: Aotomicity(原子性) 整个数据库事务是不可分割的工作单位。只有事务中所有的数据库操作都执行成功
阅读全文
摘要:1. 备份 1.1 根据备份方法不同可以划分为: 热备(Hot Backup) ibbackup是InnoDB存储引擎备份的首选方式,只不过是收费软件。其工作原理如下: 1) 记录备份开始时,InnoDB存储引擎重做日志文件检查点的LSN 2) 复制共享表空间文件以及独立表空间文件 3) 记录复制完
阅读全文
摘要:开发多用户、数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库地并发访问,另外一方面还要确保每个用户能以一致地方式读取和修改数据。 1. 什么是锁 锁机制用于管理对共享资源地并发访问。InnoDB存储引擎会在行级别上对表数据上锁。 2. lock与latch latch是一种轻量级地
阅读全文
摘要:1. InnoDB逻辑存储结构 表是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。 所有数据被逻辑的存放在一个空间中,称为表空间(tablespace),表空间又由段(segment)、区(extent)、页(page)等组成。 1.1 表空间 默认情况下,InnoDB存储引擎有一个共享表
阅读全文
摘要:1. 参数文件 MySQL实例启动时,数据库会先读取参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数。与Oracle数据库不同的是,如果没有配置参数文件,MySQL启动时,会加载默认值。 静态参数是只读的,动态参数可以在MySQL实例运行中进行更改,其修改范围可以参考MySQL官方手
阅读全文
摘要:1. InnoDB 体系架构 1.1 后台线程 后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中缓存的是最近的数据。此外,还会将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能恢复到正常运行的状态。 InnoDB存储引擎是多线程的模型,其后台有多个不同的后台线程
阅读全文
摘要:1. 数据库和数据库实例 数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器(计算机主存储器或内存之外的所有可访问存储器,如移动/固定硬盘,光盘)中的数据集合。在MySQL数据库中,数据库文件可以是frm, MYD, MYI, ibd结尾的文件。 数据库实例是程序,是位于用户和操作系统
阅读全文

浙公网安备 33010602011771号