MySQL 存储引擎介绍

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 文件。这是一个普通文本文件,其中每个表行占用一个文本行,但不支持索引
* FEDERATED 引擎提供了访问由其他 MySQL 服务器进行管理表的能力。(就是说:FEDERATED 表的内容实际上位于远程,当创建 fedreated 表时,需要指定一台运行着其他服务器的主机,并提供该服务器上的某个账户的用户名和密码。当要访问 fedreated 表时,本地服务器将使用这个账户链接那台远程服务器。)
* MERGE 引擎提供了一种把多个 MyISAM 表合并为一个逻辑单元的手段。查询一个 merge 表时,相当于查询其所有的成员表。好处:可以突破文件系统对单个 MyISAM 表的最大尺寸所设定的限制。分区表可以替换 merge 表,并且不会受限于 MyISAM 表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值