1. MySQL体系结构
2、InnoDB存储引擎
介绍:
存储引擎就是存储数据、建立索引、更新和查询数据库的技术实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以称为表类型。
InnoDB是一种高可靠性和高性能的存储引擎,在MySQL 5.5之后,是MySQL默认的存储引擎。
特点:
Supports transactions, row-level locking, and foreign keys
文件:
xxx.ibd: xxx代表的是表名,InnoDB的每张表都有一个这样的对应文件,存储该表的表结构(frm,sdi),数据和索引
参数:innodb_file_per_table 关于该参数可参考[https://www.cnblogs.com/wt645631686/p/8258070.html]
-- 查看参数innodb_file_per_table
show variables like 'innodb_file_per_table';
-- 查看数据库支持的存储引擎
show engines;
-- 查看建表语句
show create table emp;
-- 建表时可指定不同的存储引擎
CREATE TABLE `emp` (
`id` int DEFAULT NULL COMMENT '编号',
`workNo` varchar(10) DEFAULT NULL COMMENT '员工工号',
`name` varchar(10) DEFAULT NULL,
`gender` char(1) DEFAULT NULL COMMENT '性别',
`age` tinyint unsigned DEFAULT NULL COMMENT '年龄',
`idcard` char(18) DEFAULT NULL COMMENT '身份证号',
`workaddress` varchar(50) DEFAULT NULL COMMENT '工作地址',
`entrydate` date DEFAULT NULL COMMENT '入职时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表'
//查看MySQL的数据存放位置
show global variables like “%datadir%”
//从ibd文件中查看sdi
ibd2sdi xxx.ibd
逻辑结构
3、MyISAM 存储引擎
介绍:
MyISAM是InnoDB早期的存储引擎
特点:
不支持事务,不支持外键
支持表锁,不支持行锁
访问速度快
文件:
xxx.sdi: 存储表结构信息
xxx.MYD: 存储数据信息
xxx.MYI: 存储索引信息
4、Memory 存储引擎
介绍:
Memory 引擎存储的数据是在内存中,由于硬件问题或断电等影响只能将这些表作为临时表或缓存使用。
特点:
内存存放、hash索引
文件:
xxx.sdi: 存储表结构信息