1、大体流程
1.1 一些概念
1.1.1 RDBMS
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,类似excel
1.1.2 OLAP 和 OLTP
OLTP(Online transactionprocessing):在线/联机 事务 处理。主要是对数据库中的数据进行增删改查
OLAP(Online analyticalprocessing):指联机 分析 处理。通过分析数据库中的数据来得出一些结论性的东西
OLTP查询一般仅涉及单表,点查为主,返回的是记录本身或该记录的多个列。
OLAP则不同,表中单条记录本身并不是查询所关心的
1.1.3 事务
多个操作同时进行,那么同时成功,那么同时失败。这就是事务。
1.2 innodb 存储结构
InnoDB将数据划分为若干页,每个页默认大小16KB。
页是磁盘和内存交互的基本单位,每次IO最少读取16KB的内容到内存。也就是说,IO的基本单位是页。一个页中可以存储多个行记录。
页之间可以不在物理结构上相连,通过双向链表相关联。页内的记录按主键大小排序构成单向链表。
行->页->区->段->表空间
区在文件系统中是连续分配的空间,一个区等于64个页,大小:64*16K=1MB
段中不要求区之间是相邻的,不同类型的数据库对象以不同段的形式存在。例如数据表段(叶子结点)、索引段(非叶子节点段)。
表空间本质上就是一个存放各种页的页面池,数据库由多个表空间组成,空间可划分为系统表空间(只有一个,额外记录系统信息)、用户表空间、临时表空间等。
如果你想让每一个数据库表都有一个单独的表空间文件的话,可以通过参数innodb_file_per_table = ON设置。
1.3 物理文件
1.3.1日志文件
1. 错误日志文件(error log):记录的是MySQL异常,或则MySQL链接有误
2. 二进制日志(binarg log):用于数据恢复、数据库的主从配置
3. 事务日志(rado undo log):事务的开启会存储到rado log日志以及撤销日志 undo log,稍后会刷入磁盘中
4. 慢查询日志(slow query log):可用于查询项目中的哪些sql语句查询较慢。
5. 查询日志(query log):用于查询缓慢的语句日志
1.3.2 数据库文件
1. .frm文件:(MySQL表的引擎是MyISAM的,存储的是该引擎的创建表或则其他操作的语句)。
2. .myd文件:(MySQL表的引擎是MyISAM的,存储的是该引擎的所有数