TDSQL-C MySQL 版 参数配置与监控项

这篇说说TDSQL-C MySQL版列存索引CSI的参数配置(如columnstore_enable等)及监控项(如列存索引执行语句数),并详细说明行列分流、各节点(行存RO、列存RO等)的资源参数设置与内存分配建议。 参数配置:包含9个参数,控制列式存储、计算、缓存及大查询阈值。 节点设置:区分纯行存、RW、行存RO与列存RO,各有不同开关与资源配比。 监控项:提供5个指标,用于跟踪列存查询执行、回退、同步延时及存。

相关产品
TDSQL-C MySQL 版 产品页,含版本规格、价格与购买入口。

这里说明列存索引 CSI 的参数配置和监控项。

一、前提条件

内核版本为 TDSQL-C MySQL 版8.0 3.1.20.001及以上。

注意:说明:

注意:针对只读实例而言,符合版本要求的情况下,4核以上的只读实例才可以开启列存索引功能。

二、参数列表

参数名 类型 默认值 取值范围 说明
columnstore_enable boolean OFF OFF / ON 是否开启列式存储。ON:开启。OFF:关闭。
columnstore_enable_query_execution boolean OFF OFF / ON 是否开启列式计算。ON:开启。OFF:关闭。
columnstore_enable_proxy_forward boolean OFF OFF / ON 数据库代理自动分流大查询到列存节点(业务接入数据库代理)。ON:开启。OFF:关闭。
columnstore_cost_threshold numeric 100000 0 – 1.7976931348623157e308 大查询的阈值。
columnstore_prm_memory_pool_size integer 1GB 1MB – 100GB 行列转换缓存(内存)。
columnstore_buffer_pool_size integer 1GB 1MB – 16EB 列式数据缓存(内存)。
columnstore_ap_buffer_limit integer 10GB 1GB – ≈16EB 列式计算缓存(内存)。
columnstore_local_disk_usage_limit integer 1TB 1MB – 1PB 列式数据缓存(磁盘)。
columnstore_ap_max_temp_directory_size integer 0 0 – ≈16EB 列式计算缓存(磁盘)。

注意:说明:

注意:当前列式计算只支持列式存储,还不支持直接从行存读数据。

三、行列分流参数设置

·数据库代理模式(通过数据库代理转发查询到列存 RO 节点):开启数据库代理后,在数据库代理模式下支持负载均衡和跨节点行列分流,列存节点在数据库代理中注册为列存 RO。

·直连模式(直连列存 RO 节点):直连列存节点时会在节点内行列分流,但是列存节点需要规划足够的行存和列存资源,直连模式不支持故障切换。

参数 纯行存 RW 行存 RO 列存 RO 说明
columnstore_enable OFF ON OFF ON 允许列存管理数据(RW 只维护元数据)。
columnstore_enable_query_execution OFF OFF OFF ON 允许列存执行 SQL。
columnstore_enable_proxy_forward OFF ON ON ON 节点参与数据库代理分流。

四、节点资源参数设置

全局资源参数在 RW 上自动忽略,在 RO 上受列存存储和计算开关控制,关闭时无资源开销。设置参考如下:

# 全局参数 (RW 忽略)columnstore_buffer_pool_size = <MEM*0.3>columnstore_ap_buffer_limit = <MEM*0.1>columnstore_prm_memory_pool_size = <MEM*0.02>columnstore_local_disk_usage_limit = <MEM*3>columnstore_ap_max_temp_directory_size = <MEM>

五、行存节点默认配置

行存节点关闭列式存储和计算,不识别大查询,也不参与转发。设置参考如下:

# 纯行存模式columnstore_enable = OFFcolumnstore_enable_query_execution = OFFcolumnstore_enable_proxy_forward = OFF# 行存资源参数innodb_buffer_pool_size = <MEM*0.75>

六、RW 节点配置(开启列存,参与行列分流)

RW 节点开启列式存储,但只维护元数据,不存储列式数据。RW 参与行列分流,识别并转发大查询到列存节点执行。设置参考如下:

# 列存 RW 参数columnstore_enable = ONcolumnstore_enable_query_execution = OFFcolumnstore_enable_proxy_forward = ON# 行存资源参数innodb_buffer_pool_size = <MEM*0.75># 全局参数 (RW 忽略)columnstore_buffer_pool_size = <MEM*0.3>columnstore_ap_buffer_limit = <MEM*0.1>columnstore_prm_memory_pool_size = <MEM*0.02>columnstore_local_disk_usage_limit = <MEM*3>columnstore_ap_max_temp_directory_size = <MEM>

七、行存 RO(参与行列分流)

行存 RO 节点不规划资源在列存存储和执行上,但是参与行列分流,识别并转发大查询到列存节点执行。设置参考如下:

# 行存 RO 参与行列分流columnstore_enable = OFFcolumnstore_enable_query_execution = OFFcolumnstore_enable_proxy_forward = ON# 行存资源参数innodb_buffer_pool_size = <MEM*0.75>

八、列存 RO 节点路由配置(列式执行 SQL)

列存 RO 分配资源到存储和计算,接收转发或直连的大查询。缓存需要根据节点规格按比例设置。

注意:在行存节点上,默认 innodb buffer pool 为节点内存的75%,在列存节点上,这75%应由列存和行存分享。

# 列存 RO 参数columnstore_enable = ONcolumnstore_enable_query_execution = ONcolumnstore_enable_proxy_forward = ON# 行存资源调整,需要划一部分给列存innodb_buffer_pool_size = <MEM*0.3># 全局参数 (列存 RO 有效)columnstore_buffer_pool_size = <MEM*0.3>columnstore_ap_buffer_limit = <MEM*0.1>columnstore_prm_memory_pool_size = <MEM*0.02>columnstore_local_disk_usage_limit = <MEM*3>columnstore_ap_max_temp_directory_size = <MEM>

九、列存索引 CSI 监控项

中文指标名 英文指标名 单位 聚合方式 含义
列存索引执行语句数 Innodb_csi_select_pushdown 个 SUM 已执行的列存查询语句数量。
列存索引回退语句数 Innodb_csi_select_fallback 个 SUM 列存索引回退语句数量。
列存索引同步延时 innodb_csi_lag_seconds 秒 MAX rw 与 CSI 实例同步延时。
列索引存储使用量 Innodb_csi_disk_usage GB MAX 列索引存储使用量。
创建 CSI 失败数 txsql_csi_fail 个 SUM 创建列存索引失败个数。
赞 (0)
上一篇 4天前
下一篇 4天前