云原生数据仓库 AnalyticDB MySQL 版提供了Cache表功能,用于临时存储查询结果,能够实现快速检索和数据管理。本文介绍Cache表的相关功能说明以及使用示例。
前提条件
AnalyticDB for MySQL集群为V3.2.0及以上版本。
说明
如何查看集群内核版本,请参见如何查看实例版本信息。如需升级内核版本,请联系技术支持。
功能介绍
Cache表提供类似传统数据库临时表(Temp Table)的功能。支持将某个查询结果临时存储,为结果集进一步分析和检索提供高效的支撑。不同于数据存储在存储引擎(Worker)的表,Cache表的数据存储在前端接入节点上,AnalyticDB for MySQL会根据淘汰策略自动删除不再被使用的Cache表。
使用方法
创建Cache表
只支持使用CTAS语句来创建Cache表并写入数据,语句中必须指定ENGINE='CACHE'
,否则会创建为普通的表而不是Cache表。
将adb_demo.customer
表数据按age
字段排序并写入到c1
缓存表中,示例如下:
-- 可选:创建名为caches的Database
CREATE DATABASE IF NOT EXISTS caches;
-- 通过CTAS创建Cache Table:
CREATE TABLE caches.c1 ENGINE='CACHE'
AS SELECT * FROM adb_demo.customer ORDER BY age LIMIT 9999;
说明
建议单独创建一个库(Database)方便管理Cache表,也可使用任意已存在的库来创建Cache表。
查询Cache表
查询名为caches.c1
的Cache表,示例如下:
SELECT * FROM caches.c1;
查询已创建的Cache表
获取当前集群中所有的Cache表信息。
SELECT * FROM INFORMATION_SCHEMA.KEPLER_CACHE_TABLE_STATUS_MERGED;
阈值配置
配置Cache表过期时间(TEMP_TABLE_EXPIRATION_TIME)
Cache表的过期时间阈值,默认值为3600
,单位为秒(s),即1小时未被访问则会被自动清除。
SET ADB_CONFIG TEMP_TABLE_EXPIRATION_TIME=3600;
配置Cache表的最大行数(TEMP_TABLE_MAX_ROW_COUNT)
每个Cache表允许记录的最大行数,默认值为300000
,单位为行。
SET ADB_CONFIG TEMP_TABLE_MAX_ROW_COUNT=300000;
文档内容是否对您有帮助?