什么是Mysql 存储引擎

存储引擎(数据库引擎)是处理各种表的 SQL 操作(创建、读取、更新数据)的软件组件。
MySQL 5.5 之前的默认存储引擎是 MyISAM。

之路教程 https://onitr oad .com

MySQL 5.6 支持的存储引擎

Mysql 存储引擎有哪些?
了解 MySQL 中每种表类型的特性非常重要,这样我们就可以有效地使用它们来最大限度地提高数据库的性能。

InnoDB

InnoDB:MySQL 5.6 中的默认存储引擎。
InnoDB 是 MySQL 的事务安全(ACID 兼容)存储引擎,具有提交、回滚和崩溃恢复功能来保护用户数据。
InnoDB 行级锁定和 Oracle 风格的一致非锁定读取提高了多用户并发性和性能。
InnoDB 将用户数据存储在聚集索引中,以减少基于主键的常见查询的 I/O。
为了维护数据完整性,InnoDB 还支持 FOREIGN KEY 引用完整性约束。

MyISAM

MyISAM:表级锁定限制了读/写工作负载的性能,因此它通常用于 Web 和数据仓库配置中的只读或者以读取为主的工作负载。
在 MySQL 5.5 版本之前,MyISAM 是我们在创建表时未明确指定存储引擎时的默认存储引擎。
MyISAM 表不是事务安全的。

Memory

Memory:将所有数据存储在 内存 中,以便在需要快速查找非关键数据的环境中进行快速访问。
该引擎以前称为 HEAP 引擎。
它的用例正在减少;InnoDB 及其缓冲池内存区域提供了一种通用且持久的方式来将大部分或者所有数据保存在内存中,而 NDBCLUSTER 为庞大的分布式数据集提供快速的键值查找。

CSV

CSV:它的表格实际上是具有逗号分隔值的文本文件。
CSV 表允许我们以 CSV 格式导入或者转储数据,以便与读写相同格式的脚本和应用程序交换数据。
由于 CSV 表未编入索引,因此我们通常在正常操作期间将数据保留在 InnoDB 表中,并且仅在导入或者导出阶段使用 CSV 表。

Archive

Archive:这些紧凑的、未索引的表用于存储和检索大量很少引用的历史、存档或者安全审计信息。

Blackhole

Blackhole:Blackhole 存储引擎接受但不存储数据,类似于 Unix /dev/null 设备。
查询总是返回一个空集。
这些表可用于将 DML 语句发送到从服务器的复制配置,但主服务器不保留自己的数据副本。

NDB

NDB(也称为 NDBCLUSTER)——这种集群数据库引擎特别适用于需要尽可能高的正常运行时间和可用性的应用程序。

标准 MySQL 5.6 版本不支持 NDB 存储引擎。
目前支持的 MySQL Cluster 版本包括 MySQL Cluster NDB 7.1,它基于 MySQL 5.1;MySQL Cluster NDB 7.4 目前正在开发中,也基于 MySQL 5.6,现在也可以在 Developer Milestone 版本中使用。

Merge

Merge:使 MySQL DBA 或者开发人员能够对一系列相同的 MyISAM 表进行逻辑分组,并将它们作为一个对象引用。
适用于 VLDB 环境,例如数据仓库。

Federated

Federated:提供链接单独的 MySQL 服务器以从多个物理服务器创建一个逻辑数据库的能力。
非常适合分布式或者数据集市环境。

示例:此引擎用作 MySQL 源代码中的示例,说明如何开始编写新的存储引擎。
它主要是开发人员感兴趣的。

我们不限于对整个服务器或者架构使用相同的存储引擎。
我们可以为任何表指定存储引擎。
例如,应用程序可能主要使用 InnoDB 表,其中一个 CSV 表用于将数据导出到电子表格,而一些 MEMORY 表用于临时工作区。

参考:https://dev.mysql.com/doc/refman/5.6/en/storage-engines.html

MySQL中的 存储引擎
日期:2020-09-17 00:11:17 来源:oir作者:oir