MySQL 存储引擎介绍

作者: TinyDolphin | 来源:发表于2018-01-04 15:51 被阅读0次
SHOW ENGINES; -- 查看可供选用的存储引擎

注:MRG_MyISAMNDBCLUSTER 分别是 MERGE 和 NDB 的同义词。


注:MEMORY 存储引擎会把表放在内存里,而非磁盘上;默认情况下,InnoDB 引擎会把表的数据索引存储在它的系统表空间里。

InnoDB 存储引擎
MySQL 的默认引擎,有以下几项功能:

  • 其表在执行提交回滚操作时是事务安全的,可以通过创建保存点来实现部分回滚
  • 系统崩溃后可以自动恢复
  • 外键和引用完整性支持,包括级联删除和更新
  • 基于行级别的锁定多版本化,使得在执行同时包含有检索和更新操作的组合条件查询时,可以表现出很好的并发性能;
  • 从 MySQL 5.6 开始,InnoDB 支持全文搜索FULLTEXT 索引

MyISAM 存储引擎

  • 当保存连续相似的字符串索引值时,它会对键进行压缩。也可开启压缩相似数字索引功能(PACK_KEYS=1);
  • AUTO_INCREATMENT 提供了更多的功能;
  • 每个 MyISAM 表都有一个标记,在执行表检查操作时被设置。还有一个标记,用于表明该表在上次使用后是否被正常关闭。服务器会检查标记并进行表修复
  • 支持全文检索FULLTEXT 索引
  • 支持空间数据类型SPATIAL 索引

MEMORY 存储引擎
memory 存储引擎会把表存储在内存里,并且表的行长度固定不变,所以相关操作非常快。

  • 默认情况下,MEMORY 表使用的是散列索引——对于 "相等比较"非常快,对于"范围比较"非常慢。只适合"="、"<=>"不太适合">"、"<"、ORDER BY 子句里
  • MEMORY 表里的行使用长度固定不变的格式不能使用长度可变的数据类型 BLOB 和 TEXT。但是可以使用 VARCHAR(虽然长度可变,但是在 MySQL 内部,被当做一种长度固定不变的 CHAR 类型)。

如果要使用 "<"、">" 或 BETWEEN 这样的运算符查找某个范围内的值时,可以使用 BTREE 索引来代替散列索引。

NDB 存储引擎
是 MySQL 的集群存储引擎。对于这个存储引擎,MySQL 服务器实际上变成了一个其他进程(他们提供了对 NDB 表的访问)的集群客服端集群节点会处理彼此间的通信,从而在内存中实现对表的管理。对于实现冗余,这些表会在集群进程之间被复制。内存存储提供了高性能,而集群机制则提供了高可用性,因此即使某个节点发生故障,整系统也不会崩溃。

其他存储引擎

  • ARCHIVE 引擎提供了数据归档存储功能。适用于大批量存储那些"写了就不会再更改"的行。可以使用 INSERT 和 SELECT;不能使用 DELETE 或 UPDATE存储时压缩,检索时解压。ARCHIVE 表包含一个带索引的 AUTO_INCREMENT 列,但其他列不能被索引。
  • BLACKHOLE 引擎所创建的表,其写操作会被忽略读操作是返回空内容。这个数据库等同于 Unix 系统上的 /dev/null 设备
  • CSV 引擎在存储数据时,会用逗号分隔值。对于每个表,它会在数据库目录里创建一个 .CSV 文件。这是一个普通文本文件,其中每个表行占用一个文本行,但不支持索引
  • FEDREATED 引擎提供了访问由其他 MySQL 服务器进行管理表的能力。(就是说:FEDREATED 表的内容实际上位于远程,当创建 fedreated 表时,需要指定一台运行着其他服务器的主机,并提供该服务器上的某个账户的用户名和密码。当要访问 fedreated 表时,本地服务器将使用这个账户链接那台远程服务器。)
  • MERGE 引擎提供了一种把多个 MyISAM 表合并为一个逻辑单元的手段。查询一个 merge 表时,相当于查询其所有的成员表。好处:可以突破文件系统对单个 MyISAM 表的最大尺寸所设定的限制。分区表可以替换 merge 表,并且不会受限于 MyISAM 表。

相关文章

  • MySql高级之常见的Join查询(一)

    MySql的存储引擎介绍 : 常用的MySql存储引擎只有两个:MyISAM以及InnoDB。 两个存储引擎的区别...

  • MySQL介绍

    mysql介绍 其他数据库介绍 mysql特点 mysql存储引擎类型及特点 关于mysql单表存储 mysql介...

  • MySQL-InnoDB拾遗

    之前写过一篇介绍MySQL中存储引擎的文章MySQL之存储引擎,在实际工作中,还是以InnoDB存储引擎为主,此文...

  • 走向DBA之存储引擎(1)

    一、存储引擎介绍: 二、功能了解: 三、存储引擎种类: 3.1Oracle的MySQL 3.2MySQL支持的其他...

  • 2018-03-19

    mysql MyISAM引擎和InnoDB的介绍 1、MyISAM MyISAM是MySQL的默认存储引擎,基于...

  • MySQL-存储引擎

    1. 存储引擎种类 1.1 介绍(Oracle MySQL) MySQL 5.5 之前,使用MyISAM引擎作为模...

  • 01MySQL体系结构与存储引擎

    内容介绍 本节会分享MySQL 体系结构与存储引擎,包括 MySQL 数据库的体系结构、MySQL 支持的存储引擎...

  • mysql 索引

    注释:此文章的索引介绍是基于InnoDB存储引擎来介绍的,没特别声明則Mysql默认式InnoDB存储引擎存储。 ...

  • Mysql基础-存储引擎详述

    前文索引:Mysql基础-存储引擎简述 说明:本节将详细介绍一下常用的Mysql存储引擎特性 MyISAM 它不支...

  • InnoDB介绍

    InnoDB介绍 InnoDB是事务安全的mysql存储引擎,也是mysql的默认存储引擎,特点是行锁设计、支持M...

网友评论

    本文标题:MySQL 存储引擎介绍

    本文链接:https://www.haomeiwen.com/subject/ynbrnxtx.html