# MySQL 存储引擎

# 指定引擎

create table mytable (name varchar(32)) engine=InnoDB;
alter table mytable engine = MyISAM;

# 存储引擎介绍

存储引擎是数据库管理系统用来从数据库创建、读取和更新数据的软件模块。 mysql 中有两种类型的存储引擎:事务性和非事务性。 对于 MySQL5.5 及更高版本,默认的存储引擎是 InnoDB。 在 5.5 版本之前,MySQL 的默认存储引擎是 MyISAM。

# 有哪些存储引擎

mysql 的存储引擎种类很多,有 MyISA、InnoDB、Archive、Blackhole、CSV、Memory、Merge、NDB 等等

# InnoDB

这是 MySQL5.5 及更高版本的默认存储引擎,它提供事务安全(ACID)兼容表,支持外键引用完整性约束。它支持提交、回滚和紧急恢复功能来保护数据。 它还支持行级锁定。 当在多用户环境中使用时,它的“一致非锁定读取”提高了性能,它将数据存储在集群索引中,从而减少基于主键查询的 I/O。 适用于大多数 OLTP 应用。 特性: 1,事务安全 2,行级锁,为承受高并发增加竞争力 3,count(*)时效率低,遍历表-计算数量 4,聚簇索引,主键默认为聚簇索引,没有主键时以第一列为聚簇索引,普通索引指向聚簇索引 5,支持主键、外键

# MyISAM

该存储引擎管理非事务性能,提供高速存储和检索,支持全文搜索。 特性:
并发性与锁级别-表解锁 支持全文索引 支持数据压缩特性:
并发性与锁级别-表解锁 支持全文索引 支持数据压缩

# MEMORY

提供内存中的表,以前称为堆。它在 RAM 中处理所有数据,以便比在磁盘上存储数据更快的访问。用于快速查找引用和其他相同的数据。

# MERGE

将多个类似的 MyISAM 表分组为一个表,可以处理非事务性表,默认情况下包括这些表。

# ARCHIVE

以 zlib 对表的数据进行压缩,磁盘 I/O 更少,数据存储在.ARZ。 只支持 insert 和 select 操作,只容许在自增 ID 列上加索引。 常用于日志和数据采集应用。

# CSV

特点: 以 CSV 格式进行数据存储,所有列的字段都不能为 Null, 不支持索引,可以对数据文本在线编辑。