Ubuntu MariaDB存储引擎有哪些选择
导读:Ubuntu 上 MariaDB 存储引擎全景与选型 一、常见内置引擎与定位 InnoDB:默认引擎(自 MariaDB 10.2 起),支持事务、行级锁、外键、崩溃恢复,适合绝大多数 OLTP 场景。 MyISAM:不支持事务与外键,表...
Ubuntu 上 MariaDB 存储引擎全景与选型
一、常见内置引擎与定位
- InnoDB:默认引擎(自 MariaDB 10.2 起),支持事务、行级锁、外键、崩溃恢复,适合绝大多数 OLTP 场景。
- MyISAM:不支持事务与外键,表级锁,适合读多写少与简单统计报表;在 MariaDB 中已不再推荐作为通用引擎。
- Aria:MariaDB 自研引擎,Crash-Safe,支持页级校验,适合内部系统表与非事务但需更高可靠性的场景;MariaDB 10.4 起系统表默认使用 Aria。
- XtraDB:InnoDB 的增强分支,早期版本(如 10.1)作为默认 InnoDB 替代;自 10.2 起回归上游 MySQL InnoDB。
- MyRocks:基于 RocksDB 的 LSM 架构,压缩率高、I/O 友好,适合写密集与容量敏感场景。
- TokuDB:高压缩、适合大数据量/写密集与需要良好压缩比的事务场景(需额外安装插件)。
- ColumnStore:列存储,面向 OLAP/大数据 的 MPP 架构,适合分析型查询。
- MEMORY(Heap):数据驻留内存,极快但不持久,适合缓存/临时计算。
- ARCHIVE:面向归档/日志,只支持 INSERT/SELECT,高压缩、少索引。
- CSV:以 CSV 文件存储,便于与外部系统交换数据。
- MERGE:将多个同构 MyISAM 表虚拟合并为一个逻辑表,便于分区式管理。
- FederatedX:访问远程 MySQL 表,像本地表一样查询(依赖 libmysql)。
- Blackhole:写入即丢弃,常用于复制链路中转/过滤。
- CONNECT:SQL/MED 插件,访问外部数据源(文本、远程表等)。
- S3:只读引擎,将对象存储(如 Amazon S3)作为数据源。
- Sequence:生成整数序列的虚拟表。
- SphinxSE:为 Sphinx 全文检索提供代理引擎。
- Mroonga:基于列存储的全文检索(对 CJK 友好)。
- OQGRAPH:处理树/图结构数据(层次与复杂图)。
- Spider:分片/分布式引擎,将数据分布到多节点。
- 注:部分引擎(如 CONNECT、OQGRAPH)在某些发行包或平台可能需额外安装/编译。
二、如何快速查看与切换引擎
- 查看已启用引擎与默认引擎:
- SHOW ENGINES;
- SELECT @@global.storage_engine;
- 建表时指定引擎:
- CREATE TABLE t(id INT PRIMARY KEY) ENGINE=InnoDB;
- 修改已有表引擎:
- ALTER TABLE t ENGINE=InnoDB;
- 提示:不同引擎在事务、锁粒度、外键、持久化等方面差异显著,变更引擎前请评估数据一致性与锁行为影响。
三、按场景给出选型建议
- 通用在线事务处理(OLTP):优先 InnoDB(事务、外键、行锁、崩溃恢复)。
- 高并发写且容量敏感:考虑 MyRocks(LSM、高压缩、低 I/O)或 TokuDB(高压缩、写密集)。
- 报表/分析型(OLAP):选择 ColumnStore(列存、MPP、适合大数据量聚合)。
- 只读/缓存/临时计算:使用 MEMORY(极快但不持久,注意内存上限)。
- 日志归档/历史数据:使用 ARCHIVE(高压缩、少索引、仅追加)。
- 跨库/跨源查询:使用 CONNECT 或 FederatedX(访问外部数据源或远程 MySQL)。
- 系统表/非事务但需可靠性:使用 Aria(Crash-Safe、页校验)。
- 多主同步集群:使用 Galera Cluster,仅支持 InnoDB/XtraDB 表。
四、版本与平台差异提示
- 默认引擎:MariaDB 10.2 起默认是 InnoDB;10.4 起系统表默认使用 Aria。
- XtraDB 演进:10.1 常用作 InnoDB 增强替代;10.2 起回归上游 InnoDB。
- Galera 支持:MariaDB Galera Cluster 仅支持 InnoDB/XtraDB 表。
- 可选插件:如 CONNECT、OQGRAPH 等在某些预编译包中可能不包含,需要额外安装/编译。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MariaDB存储引擎有哪些选择
本文地址: https://pptw.com/jishu/751120.html
