云数据库 MySQL 数据库存储引擎

存储引擎是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式。这里说明云数据库 MySQL 支持的存储引擎。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

一、InnoDB 引擎

InnoDB 引擎,是最常用的 OLTP 存储引擎,采用了多版本并发控制(MVCC)和行级锁定技术,以提供高性能和可靠的事务处理能力。相对于 MySQL 的其他存储引擎,InnoDB 支持更好的数据完整性,包括外键和回滚等,还提供了更高级别的查询功能,同时腾讯云对 InnoDB 做了很多内核优化,使其具有更加明显的性能优势,被广泛应用于高性能、高并发的应用场景中。
云数据库 MySQL 默认支持 InnoDB 存储引擎,并在 MySQL5.6及以上的版本中,不再支持 MyISAM 引擎和 Memory 引擎。主要原因如下:

·在目前的 MySQL 版本中,TencentDB 对 InnoDB 做了很多内核优化,已经具有明显的性能优势。

·MyISAM 采用的是表级锁机制,而 InnoDB 是行级锁机制,通常情况下 InnoDB 具有更高的写入效率。

注意:说明:

·MyISAM 对数据完整性的保护存在缺陷,且这些缺陷会导致数据库数据的损坏甚至丢失。另外,这些缺陷很多是设计问题,无法在不破坏兼容性的前提下修复。

·MyISAM 和 Memory 向 InnoDB 的迁移代价低,大多数应用仅需要改动建表的代码即可完成迁移。

·MyISAM 的发展在向 InnoDB 转移,在最新的 MySQL8.0版本中,系统表均已采用 InnoDB。

·Memory 无法保证数据的完整性,实例发生重启或者主备切换时,表中的所有数据都会丢失,建议你尽快迁移至 InnoDB。

更多信息请参见 InnoDB 简介 和 MyISAM 简介。

二、RocksDB 引擎

RocksDB 是一个非常流行的高性能持久化 KV(key-value)存储,TXRocks 是腾讯 TXSQL 团队基于此开发的事务型存储引擎。TXRocks 事务型存储引擎得益于 RocksDB LSM Tree 存储结构,既减少了 InnoDB 页面半满和碎片浪费,又可以使用紧凑格式存储,因此 TXRocks 在保持与 InnoDB 接近的性能前提下,存储空间相比 InnoDB 可以节省一半甚至更多,更适合对事务读写性能有要求,且数据存储量大的业务。

·更节省存储空间
相比 InnoDB 使用的 B+Tree 索引结构,LSM Tree 可以节省相当比例的存储空间。

·写放大更低

·InnoDB 采用 In-Place 的修改方式,即使仅修改一行记录也可能要刷盘一整个页面,导致比较高的写入放大和随机写。RocksDB 采用 Append-Only 方式,相比而言写入放大更低。

三、LibraDB 引擎

LibraDB 引擎即只读分析引擎,是云数据库 MySQL 支持的全新功能,此功能基于只读实例提供服务。其可插拔式的引擎设计可以实现灵活的创建以及销毁,同时为用户提供海量数据处理与高效实时的复杂分析能力。LibraDB 引擎主要服务于高效的分析类查询。是一个为客户提供实时且高性能的复杂 SQL 处理的扩展只读分析组件。利用 LibraDB 引擎的列式存储能力、向量化并行执行引擎以及分布式并行执行而扩展的优化器,可以让客户能够很简单的在数据库中原地体验到高效地分析能力,另外 LibraDB 的列式存储为高 QPS 的变更、事务的 ACID,进行了针对性的优化,保证了查询数据的实时性以及一致性。

·大规模并行计算 MPP

支持 MPP(Massively Parallel Processing)架构,能够通过将工作负载分散到多个节点上来提高数据处理性能。

·向量化执行引擎

在 LibraDB 引擎中,实现了向量化的执行模式,在对内存中的列式数据,一个 batch 调用一次 SIMD 指令,减少了函数的调用次数,降低了 cache miss。

·支持高速变更场景下的列式存储

LibraDB 引擎通过在存储层的优化和支持,可以满足用户在高并发场景下的数据变更的数据一致性,避免因为读写实例的数据频繁变更带来的数据延时而错过分析时间。

·指定数据加载能力

libraDB 引擎支持指定对象加载的能力。可在数据加载的控制台设置或者通过命令行 SQL 指定需要加载的 LibraDB 的对象。

四、各引擎支持的版本与架构

引擎 数据库版本 架构
InnoDB 引擎 MySQL5.6、5.7、8.0 单节点、双节点、三节点、云盘版
RocksDB 引擎 MySQL5.7、8.0 双节点
LibraDB 引擎 MySQL5.7、8.0 双节点、三节点
赞 (0)
上一篇 4天前
下一篇 4天前