MySQL是一个广泛使用的关系型数据库管理系统,它支持多种存储引擎。存储引擎是MySQL中用于表数据处理和存储的组件。每种引擎都有其特定的特性、优势和限制,适用于不同类型的应用场景。
除了广泛使用的InnoDB之外,以下是一些其他常见的MySQL存储引擎:
-
MyISAM:
- MyISAM曾经是MySQL默认使用的存储引擎,在InnoDB成为默认选项之前。
- 它提供了全文索引、压缩表以及较大索引文件支持。
- MyISAM不支持事务处理也没有行级锁定(只有表级锁定),因此写操作会锁定整个表。
- 它适合于读密集型应用场景,并且在这些场景下通常会提供较高性能。
-
MEMORY:
- MEMORY(以前称为HEAP)将所有数据保存在内存中,这意味着它可以提供非常快速地访问速度。
- 由于数据保存在内存在系统重启或者数据库重启后会丢失,所以主要适合作为缓冲或者临时数据处理。
-
CSV:
- CSV将数据保存成逗号分隔值(CSV)格式文件。每个记录对应文件中一行记录,并通过换行符分隔开来。
- CSV格式易于与其他程序共享如文本编辑器和电子表格程序等,并允许直接编辑CSV文件来修改数据库内容。
-
ARCHIVE:
- ARCHIVE专门设计来进行大量插入操作后进行长期归档而优化,在插入时压缩并只允许INSERT和SELECT操作
- 由其设计之初就不包含索引功能, 因此查询可能非常低效, 但对磁盘空间利用率极高
- 主要被运用在日志信息收集与归档领域
-
FederatedX/FEDERATED:
-FEDERATED充当链接到远程服务器上另一个MYSQL服务器上实际存在TABLES代理
-FederatedX 是 Federated 的改进版本并作为第三方插件存在 -
BLACKHOLE:
BLACKHOLE实际上什么都不做:它接受但并不真正地去写入任何信息到磁盘上去
主要被运作日志记录或复制配置当做"黑洞"使得某些事件可以被复制到从属服务器而无需真正地写入任何东西
7 . NDB (Network Database) 或 Cluster:
NDB 是专门针对高可靠性 高可扩展性设计 分布式计算环境下工作得很好
8 . TokuDB:
TokuDB 使用Fractal Tree 索 引技术 提供 高压 缩率 支 挺事务 大量 并发读 写 操作
9 . Aria:
Aria 被看做MyISAM 的改进版 提供 崩溶恢复能力 改善 编码 存 儲 效率 更好 并发 控 制等 特点
选择正确 存 儲 引 摆 对 数据库 性 能 可靠 性 及 维护 成本 具有 关键 影响 因此 开发者 应根据 应 项目需求 综合评估 各 存 儲 引 摆 特点 进 行选择