什么是MySQL的存储引擎?
在数据库中,数据表设计的是否合理直接影响着数据库的功效,而在设计数据表时存储引擎的选择,则决定着数据表具有哪些功能。接下来将对 MySQL 常用存储引擎及其作用进行介绍。
- InnoDB 存储引擎 *
- MyISAM 存储引擎 *
- MEMORY 存储引擎
- ARCHIVE 存储引擎
存储引擎—InnoDB存储引擎
InnoDB 存储引擎自 MySQL 5.5 版本起被指定为默认的存储引擎,用于完成事务、回滚、崩溃修复和多版本并发控制的事务安全处理。同时也是 MySQL中第一个提供外键约束的表引擎,尤其对事务处理的能力,是 MySQL 其他存储引擎所无法与之比拟的。
InnoDB 的优势在于提供了良好的事务管理、崩溃修复能力和并发控制。
存储引擎—MyISAM存储引擎
MyISAM 存储引擎是基于 ISAM 存储引擎发展起来的,它不仅解决了 ISAM的很多不足,还增加了很多有用的扩展。
其中,对于使用 MyISAM 存储引擎的数据表,会被存储成3个文件,文件名与表名相同,文件扩展名分别为 frm、myd 和 myi。
MyISAM存储引擎的相关文件:
扩展名 | 功能说明 |
---|---|
Frm | 用于存储表的结构 |
Myd | 用于存储数据,是MYData的缩写 |
Myi | 用于存储索引,是MYIndex的缩写 |
相比 InnoDB ,MyISAM 的优点是处理速度快;缺点是不支持事务处理等。
存储引擎—MEMORY存储引擎
MEMORY存储引擎,是MySQL中的一类特殊的存储引擎。在MEMORY存储引擎的表中,所有数据都保存在内存中,因此数据的处理速度快,但不能持久保存(程序出错或关机时会丢失数据),而且不能存储太大的数据。对于需要很快的读写速度,但数据量小、不需要持久保存的数据来说,MEMORY存储引擎是一个理想的选择。
存储引擎—ARCHIVE存储引擎
ARCHIVE 存储引擎适合保存数量庞大、长期维护但很少被访问的数据。对于使用 ARCHIVE 存储引擎的数据表,数据存储时会利用 zlib 压缩库进行压缩,在记录被请求时会实时进行解压。需要注意的是,ARCHIVE 存储引擎仅仅支持查询和插入操作,且由于不支持数据索引,查询效率比较低。
存储引擎—查看数据引擎
若要查看 MySQL 当前支持哪些存储引擎,可以使用以下 SQL 命令
SHOW ENGINES;
Engines 参数表示储存引擎的的名称;Suppot 参数表示 MySQL 是否支持该类引擎; Comment 参数是对该引擎的评论与描述。InnoDB 是 MySQL 的默认储存引擎。