MariaDB支持的存储引擎及核心特性
MariaDB作为MySQL的分支,通过插件机制支持多种存储引擎,覆盖事务处理、日志存储、分布式架构、内存计算等不同场景。以下是主要存储引擎及特点:
MariaDB 10.2及以上版本的默认存储引擎,兼容MySQL InnoDB,核心特性包括:ACID事务支持、行级锁、MVCC(多版本并发控制)、外键约束、崩溃恢复和自适应哈希索引。适用于OLTP(在线事务处理)场景,如订单系统、用户账户管理等需要高并发写入和事务支持的场景。
原名“Maria”,是MariaDB自带的存储引擎,旨在解决MyISAM不支持崩溃恢复的问题。核心特性包括:表级锁、崩溃安全(通过日志实现数据还原)、支持全文索引、低存储开销。适用于只读或低频写入的日志表、临时表,是MyISAM的现代改进版本。
由Percona公司开发,MariaDB 10.1及以下版本的默认存储引擎(10.2回归InnoDB)。作为InnoDB的增强版,优化了性能监控和事务处理能力,兼容InnoDB的所有特性,适用于对性能要求较高的OLTP场景。
由Tokutek开发,MariaDB 5.5及以上版本支持。核心特性包括:高压缩比(比InnoDB高5-10倍)、LSM树结构(适合写密集型场景)、写吞吐量显著高于B树引擎(如InnoDB)。适用于日志存储(如用户行为日志)、时序数据存储(如传感器数据)等写多读少的场景。
基于RocksDB(Facebook开发的LSM数据库),MariaDB通过插件支持。核心特性包括:极高压缩比(比InnoDB高3-5倍)、LSM树结构、低写入放大(减少磁盘写入次数)。适用于日志存储、时序数据存储等对存储空间敏感且写密集的场景。
专为大规模数据分析设计,采用列式存储、高效压缩和并行处理架构。核心特性包括:支持批量插入、高效的聚合操作(如SUM、AVG)、PB级数据存储。适用于OLAP(在线分析处理)场景,如数据仓库、BI报表等需要快速执行分析查询的场景。
支持跨多个服务器的水平数据分片(Sharding),核心特性包括:透明分片(应用无需感知分片逻辑)、支持多种后端存储引擎(如InnoDB、Aria)、复杂查询下推(将查询条件分发到各个分片执行)。适用于分布式数据库架构、超大规模表的水平拆分场景。
数据存储在内存中,重启后丢失,核心特性包括:极速读写(比磁盘引擎快10-100倍)、表级锁、低延迟。适用于临时数据缓存(如会话信息、缓存中间结果)、高速计算场景(如临时表排序)。
允许在一个MariaDB服务器上访问另一个远程RDBMS(如MySQL、MariaDB)的数据,核心特性包括:通过libmysql通信、支持远程表操作(如SELECT、INSERT)。适用于分布式数据访问、跨服务器数据整合场景。
专为归档历史数据设计,核心特性包括:高压缩比(比InnoDB高10倍以上)、只支持INSERT和SELECT操作(不支持UPDATE/DELETE)、适合长期存储不常访问的数据。适用于日志归档、历史数据存储等场景。
MariaDB 10.0及以上版本支持,核心特性包括:支持连接多种外部数据源(如CSV文件、文本文件、远程HTTP资源)、通过SQL/MED标准规范访问外部数据(如将CSV文件视为表)。适用于访问外部非数据库数据、数据集成场景。
接收数据但不存储(仅写入日志),查询结果为空。核心特性包括:无数据存储、低开销、适合测试和复制场景(如作为主从复制的中继节点,仅转发数据而不存储)。
以上存储引擎可根据具体需求选择,如事务处理选InnoDB,日志存储选TokuDB/MyRocks,分布式架构选Spider,临时缓存选Memory等。