在启动实例时,mysql会根据配置文件参数启动数据库(Oracle如果没有配置文件会启动失败,mysql不会)
mysql会在下面位置查找配置文件位置
1.mysql体系结构
mysql由以下几个组件组成:
连接池组件
管理服务和工具组件
sql接口组件
查询分析器组件
优化器组件
缓冲组件
插件式存储引擎
物理文件
mysql区别于其他数据库最重要的特点是它的插件式的表存储引擎,存储引擎是基于表的,不是基于数据库
2.Innodb存储引擎(基于磁盘存储)
它支持事务,特点是行锁设计、支持外键、支持类似Oracle的非锁定读;
对于表中的数据的存储,该引擎采用聚集的方式,因此表的存储都是按照主键的顺序进行存放,如果在表定义时没有显式指定主键,该引擎会为每一行生成一个6字节的rowid,以此作为主键。下图所示为Innodb的体系架构:
2.1 Innodb存储引擎有很多内存块,这些内存块组成内存池,负责:
一。维护所有线程/进程需要访问的多个内部数据结构
二。缓存磁盘上的数据。方便快速读取
2.2 **后台线程主要作用是刷新内存池的数据、将已经修改的数据文件刷新到磁盘文件、同时保证在数据库发生异常后Innodb可以恢复正常运行状态。**包括:
**Master Thread:**核心后台线程,负责缓冲池的数据异步刷新到磁盘,保证数据一致性。
IO Thread:处理IO请求,可极大提高数据库性能
Pugre Thread: 回收已经使用并分配完的undo页。
2.3内存
2.3.1缓冲池
主要存储数据页和索引页
3.Innodb存储引擎特性
3.1 插入缓冲:它是物理页的组成部分,它的使用需要满足俩个条件:索引不是唯一的和索引是辅助索引可提高插入操作性能。它的数据结构是B+树;
3.2 两次写: 保证引擎数据页的可靠性。