跳至主要內容

MySQL数据引擎

大约 3 分钟约 927 字

查询MySQL中支持的中文引擎

查询支持的全部中文引擎

MySQL中的数据使用不同的技术存储在文件中(或者内存中),每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供应用广泛的、不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。

在MySQL中,可以使用SHOW ENGINE语句查询MySQL中支持的存储引擎,查询语句如下:

SHOW ENGINES\g

注:使用\g与使用;效果是一样的,使用\G可以使结果更美观。

运行结果
运行结果
SHOW ENGINES\G
运行结果
运行结果

同时,使用如下的命令可以查看默认的存储引擎:

SHOW VARIABLES LIKE 'storage_engine%';
运行结果
运行结果

常见的存储引擎

InnoDB存储引擎

优点 特别适合处理多重处理的更新请求;是唯一支持事务的标准MySQL存储引擎,这是管理敏感数据(如金融信息和用户注册信息)所必需的;与其他存储引擎不同,InnoDB表能自动从灾难中恢复,虽然MyISAM表也能在灾难后修复,但是过程要长得多。

MyISAM存储引擎

  1. 文件类型

    .frm 存储表的结构

    .MYD 存储数据,是MYData的缩写

    .MYI 存储索引,是MYIndex的缩写

  2. 存储格式

    • MyISAM静态
    • MyISAM动态
    • MyISAM压缩

优点 占用空间小,处理速度快

缺点 不支持事务的完整性和并发性

MEMORY存储引擎

  1. 文件存储形式

    每个基于MEMORY存储引擎的表是一个文件。

  2. 索引类型

    默认使用哈希(HASH)索引,其速度要比B树(BTREE)索引快。

  3. 存储周期

    存储在内存上,一旦重启机器或者关机,表中的所有数据都会消失。

  4. 优缺点

    缺点 表的大小有限制;不支持VARCHAR、BLOB、TEXT数据类型。

  5. 什么时候选择此存储引擎

    暂时 目标数据只是临时需要,在其生命周期中必须立即可用

    相对无关 存储在MEMORY表中的数据如果突然丢失,不会对应用服务产生负面影响,不会对数据完整性有长期影响。

选择存储引擎

InnoDB 用于事务处理应用程序,具有众多特性,包括支持ACID事务、外键、崩溃修复能力和并发控制。如果对事务的完整性要求比较高,要求实现并发控制,那么选择此引擎有很大优势。如果需要进行频繁更新,删除数据库的操作,也可以选择此引擎,因为此引擎可以实现事务的实现和回滚。

MyISAM 管理非事务表,它提供高速存储和检索,以及全文搜索能力。此引擎插入数据快,空间和内存使用比较低。如果表主要是插入新记录和读出记录,那么选择此引擎可以实现处理的高效率,如果应用的完整性、并发性很低,也可以选择此引擎。

MEMORY引擎 此引擎提供“内存中”的表,其所有数据都在内存中,数据的处理速度快,但安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMORY存储引擎。MEMORY存储引擎对表的大小有要求,不能建太大的表。所以,这类数据库只使用较小的数据库表。

上次编辑于:
贡献者: QI