存储引擎
概念
- 数据库存储引擎是数据库底层组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。
- 不同的存储引擎提供不同的存储机制、索引功能、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
- 存储引擎是针对数据表的,在同一个数据库中,不同的表可以使用不同的存储引擎。
类型
功能 | MylSAM | MEMORY | InnoDB |
存储限制 | 256TB | 内存 | 64TB |
支持事务 | No | No | Yes |
支持全文索引 | Yes | No | No |
支持树索引 | Yes | Yes | Yes |
支持哈希索引 | No | Yes | No |
支持数据缓存 | No | N/A | Yes |
支持外键 | No | No | Yes |
- InnoDB:行级锁定(select * from tableName where name = 'tom' for update;)锁定该表的更新功能
- MyISAM:表级锁定
数据库实例
MylSAM
.frm、.MYD、MYI文件,这些文件都是MyISAM存储引擎生成的
[root@localhost ~]# cd /usr/local/mysql/data/mysql
[root@localhost mysql]# ls
user.frm
user.MYD
user.MYI
- .frm
- 数据表结构,比如表有多少列,每个列的名字
- .MYD
- 存放表中数据
- .MYI
- 专门存放索引的信息的文件
InnoDB
.frm和.ibd文件,这些文件都是MyISAM存储引擎生成的。
[root@localhost ~]# cd /usr/local/mysql/data/auth
[root@localhost auth]# ls
db.opt users.frm users.ibd
- .frm
- 存放数据表的元数据
- .ibd
- 和MyISAM的.MYD文件类似,存放数据表中的数据
- .opt
- 存放MySQL的配置信息
查看指定表的存储引擎类型
登录进MySQL,使用下方代码块内的show命令查看指定库指定表的状态信息
- Engine: InnoDB:该表使用的存储引擎
- Create_time:创建该表的时间
- Collation: utf8_general_ci:校对字符集