MySQL HeatWave 窥探(1)
HeatWave
MySQL HeatWave 是一种大规模并行、高性能内存查询加速器,可将分析工作负载、混合工作负载和机器学习的 MySQL 性能提高几个数量级。
可以通过 Oracle 云基础设施 (OCI)、Amazon Web Services (AWS) 和 Oracle Database Service for Azure (ODSA) 访问 HeatWave。
HeatWave 由 MySQL 数据库系统和 HeatWave 节点组成。满足某些先决条件的分析查询会自动从 MySQL 数据库系统卸载到 HeatWave 集群,以加速处理。
借助 HeatWave 集群,您可以从同一 MySQL 数据库运行在线事务处理 (OLTP)、在线分析处理 (OLAP) 和混合工作负载,无需提取、传输和加载 (ETL),也无需修改应用程序。
MySQL 数据库系统包含一个 HeatWave 插件,负责集群管理、查询调度以及将查询结果返回到 MySQL 数据库系统。
HeatWave 节点将数据存储在内存中并处理分析和机器学习查询。每个 HeatWave 节点都托管一个 HeatWave 查询处理引擎 (RAPID) 的实例。
RAPID
众所周知,MySQL 默认存储引擎为 InnoDB,但是在 HeatWave 中,实现了第二存储引擎 RAPID,尚未开源,且只支持在 HeatWave 中使用。
MySQL 为支持第二存储引擎调整了内核实现,从 MySQL 8.0.21 开始,支持在建表语句中指定第二存储引擎。
1 | CREATE TABLE `t` ( |
在 I_S.tables
表中也可查看设定。
1 | SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS |
1 | +--------------+------------+---------------------------------------------+ |
加载表到 HeatWave:
1 | ALTER TABLE orders SECONDARY_LOAD; |
检查加载情况:
1 | SELECT NAME, LOAD_STATUS |
这里,RAPID 表的加载状态有如下几种:
- NOLOAD_RPDGSTABSTATE: 该表尚未加载。
- LOADING_RPDGSTABSTATE: 正在加载表。
- AVAIL_RPDGSTABSTATE: 该表已加载并可用于查询。
- UNLOADING_RPDGSTABSTATE: 正在卸载表。
- INRECOVERY_RPDGSTABSTATE: 正在恢复该表。 恢复操作完成后,如果存在挂起的恢复,则表将被置于 UNAVAIL_RPDGSTABSTATE 状态。
- STALE_RPDGSTABSTATE: 更改传播期间发生故障,并且表已过时。
- UNAVAIL_RPDGSTABSTATE:该表不可用。
简言之,MySQL 通过引入 HeatWave 组件,并将表数据复制到第二存储引擎 RAPID,从而提升分析查询处理效率和数据库性能。
- Title: MySQL HeatWave 窥探(1)
- Author: ShawnYan
- Created at: 2023-06-18 21:00:00
- Updated at: 2023-06-18 21:00:00
- Link: https://shawnyan.cn/2023/mysql/mysql-heatwave-1/
- License: This work is licensed under CC BY-NC-SA 4.0.