mysql的体系结构
各层负责的工作
连接层
主要完成一些类似于连接处理,授权认证, 及相关的安全方案, 服务器也会为安全接入的每一个用户端验证他具有的操作权限.
服务层
第二层主要完成一些核心服务, 并完成缓存的查询, SQL的分析和优化, 部分内置函数的执行, 所有跨存储引擎的功能也在这一层实现. 如过程, 函数等.
引擎层
存储引擎真正的负责了MySQL中数据的存储和读取, 服务器通过API和存储引擎进行通信, 不同的存储引擎具有不同的功能, 这样我们根据自己的需要, 来选取合适的存储引擎.
存储层
主要是将数据存储在文件系统上, 并完成于存储引擎的交互
存储引擎简介
存储引擎就是存储数据, 建立索引, 更新/查询数据等技术的实现方式, 存储引擎是基于表的, 而不是基于库的, 所以存储引擎也被叫做表类型. (说白了, 就是一个数据库中, 每个表的引擎可能是不同的)
查询键表语句
发现默认的引擎是InnoDB.
查询当前数据库支持的存储引擎
show engines ;
在创建表时指定引擎
存储引擎特点
InnoDB
InnoDB的逻辑存储结构
所以
表空间对应的就是ibd文件.
明显的, 行就是存储的最小单元, 而一行中包含哪些信息呢?
最后一次事务的id, 一些指针, 还有一个个字段信息.
在InnoDB的逻辑之中啊
页是磁盘操作的最小单元, 并且大小是固定的16K, 而区的大小是固定的. 是1M. 说明一个区有64页.
MyISAM
磁盘中涉及的文件
对比小结
存储引擎选择
引擎没有好坏之分, 看需求