MySQL数据引擎
查询MySQL中支持的中文引擎
查询支持的全部中文引擎
MySQL中的数据使用不同的技术存储在文件中(或者内存中),每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供应用广泛的、不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。
在MySQL中,可以使用SHOW ENGINE语句查询MySQL中支持的存储引擎,查询语句如下:
SHOW ENGINES\g
注:使用\g与使用;效果是一样的,使用\G可以使结果更美观。
![运行结果](/assets/image-20221009131506739-iC4HiuXL.png)
SHOW ENGINES\G
![运行结果](/assets/image-20221009143155937-BTJP-byB.png)
同时,使用如下的命令可以查看默认的存储引擎:
SHOW VARIABLES LIKE 'storage_engine%';
![运行结果](/assets/image-20221009143600987-d_x0Z5iq.png)
常见的存储引擎
InnoDB存储引擎
优点 特别适合处理多重处理的更新请求;是唯一支持事务的标准MySQL存储引擎,这是管理敏感数据(如金融信息和用户注册信息)所必需的;与其他存储引擎不同,InnoDB表能自动从灾难中恢复,虽然MyISAM表也能在灾难后修复,但是过程要长得多。
MyISAM存储引擎
文件类型
.frm 存储表的结构
.MYD 存储数据,是MYData的缩写
.MYI 存储索引,是MYIndex的缩写
存储格式
- MyISAM静态
- MyISAM动态
- MyISAM压缩
优点 占用空间小,处理速度快
缺点 不支持事务的完整性和并发性
MEMORY存储引擎
文件存储形式
每个基于MEMORY存储引擎的表是一个文件。
索引类型
默认使用哈希(HASH)索引,其速度要比B树(BTREE)索引快。
存储周期
存储在内存上,一旦重启机器或者关机,表中的所有数据都会消失。
优缺点
缺点 表的大小有限制;不支持VARCHAR、BLOB、TEXT数据类型。
什么时候选择此存储引擎
暂时 目标数据只是临时需要,在其生命周期中必须立即可用
相对无关 存储在MEMORY表中的数据如果突然丢失,不会对应用服务产生负面影响,不会对数据完整性有长期影响。
选择存储引擎
InnoDB 用于事务处理应用程序,具有众多特性,包括支持ACID事务、外键、崩溃修复能力和并发控制。如果对事务的完整性要求比较高,要求实现并发控制,那么选择此引擎有很大优势。如果需要进行频繁更新,删除数据库的操作,也可以选择此引擎,因为此引擎可以实现事务的实现和回滚。
MyISAM 管理非事务表,它提供高速存储和检索,以及全文搜索能力。此引擎插入数据快,空间和内存使用比较低。如果表主要是插入新记录和读出记录,那么选择此引擎可以实现处理的高效率,如果应用的完整性、并发性很低,也可以选择此引擎。
MEMORY引擎 此引擎提供“内存中”的表,其所有数据都在内存中,数据的处理速度快,但安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMORY存储引擎。MEMORY存储引擎对表的大小有要求,不能建太大的表。所以,这类数据库只使用较小的数据库表。