MySQL 存储引擎:常用列表及比较(mysql存储引擎有哪些)
MySQL数据库的存储引擎弹性而又多样,其中的多种情况可以满足不同的需求。它主要分为5种常见的存储引擎:MyISAM,InnoDB,MEMORY,ARCHIVE和CSV。
MyISAM
MyISAM 是MySQL数据库中最流行和最常见的存储引擎,它专为处理快速读取访问、不提供写保护支持,以及只需要最少机制支持的场景而设计。MyISAM 提供了表级锁定,可以支持满足 Full-Text 的搜索以及较高的可用速度。
InnoDB
InnoDB 是MySQL数据库中最流行和最活跃的存储引擎,它为事务安全、行级锁定、索引原子性读写和聚集索引而设计。InnoDB 同样支持基于精确键和 ROBU 锁机制的事务安全,这也是它比 MyISAM 更受欢迎的原因所在。
MEMORY
MEMORY 存储引擎使用 RAM 作为存储介质,允许高速随机读写,但不支持多用户更新并发,也不具备任何持久性。它可以很方便的建立 Hash 或 B-Tree 索引,但不支持 Full-Text 搜索。
ARCHIVE
ARCHIVE 存储引擎的特色在于只读,专为存档及离线备份时使用,支持不同压缩和编码算法,以提高历史性数据的压缩比。它是一种现成的替代方案,可用于备份和传输巨大数据量的场景,如聊天记录和日志信息。
CSV
CSV 是一种特别的存储引擎,它用于以表格行列形式存储数据,但不能在迭代和查询之间为数据提供可靠性保障。它只能存储简单的数据,经常用于简单的导入导出操作,如果要实现复杂的查询操作,建议使用其他存储引擎。
总结
从微观来看,每一种MySQL存储引擎都有其不同之处,这意味着它们在不同的情况下都有不同的优势。如果您正在考虑在您的系统中使用MySQL存储引擎,这5种存储引擎都是不错的选择,以根据您的具体需求进行选择。
MyISAM:
CREATE TABLE Foo (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
….
) ENGINE = MYISAM;
InnoDB:
CREATE TABLE Foo (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
….
) ENGINE = InnoDB;
MEMORY:
CREATE TABLE Foo (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
….
) ENGINE = MEMORY;
ARCHIVE:
CREATE TABLE Foo (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
….
) ENGINE = ARCHIVE;
CSV:
CREATE TABLE Foo (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
….
) ENGINE = CSV;