tencent cloud

TDSQL-C MySQL 版

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
产品优势
应用场景
产品架构
产品规格
实例类型
产品功能列表
数据库版本
地域和可用区
常用概念
使用限制
使用规范建议
自研内核
内核概述
内核版本更新动态
内核优化版本
功能类特性
性能类特性
安全类特性
稳定性特性
分析引擎特性
内核问题检查与修复
购买指南
计费概述
产品价格
创建集群
变配说明
续费说明
欠费说明
退费说明
按量转包年包月
按量转 Serverless
增值服务计费说明
查看费用账单
快速入门
数据库审计
简介
查看审计实例列表
开通审计服务
查看审计日志
日志投递
配置事后告警
修改审计规则
修改审计服务
关闭审计服务
审计规则模板
查看审计任务
授权子用户使用数据库审计
Serverless 服务
Serverless 简介
创建和管理 Serverless 版集群
弹性管理工具
Serverless 资源包
多可用区部署
配置变更
常见问题
Serverless 成本预估器
操作指南
操作总览
控制台切换集群页面视图
数据库连接
实例管理
配置变更
实例形态管理
集群管理
只读实例管理
数据库代理
账号管理
数据库管理
数据库管理工具(DMC)
参数配置
多可用区部署
全球数据库
备份与恢复
操作日志
迁移数据
并行查询
列存索引 CSI
分析引擎
数据库安全和加密
监控与告警
SQL 基本操作
使用 SCF 连接 TDSQL-C MySQL 版
标签
实践教程
TDSQL-C MySQL 版数据库审计等保实践
通过 DTS 升级数据库版本 MySQL5.7至8.0
TDSQL-C MySQL 版使用规范
新版本控制台
数据库代理多连接地址实现多 RO 组
数据库代理的优势
如何选择存储空间计费模式
通过 DTS 构建异地灾备
为集群创建 VPC
如何进行数据恢复
如何解决 CPU 使用率高的问题
如何授权子用户查看监控
白皮书
安全白皮书
性能白皮书
故障处理
连接相关
性能相关
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Multi-Availability Zone APIs
Other APIs
Audit APIs
Database Proxy APIs
Backup and Recovery APIs
Parameter Management APIs
Billing APIs
serverless APIs
Resource Package APIs
Account APIs
Performance Analysis APIs
Data Types
Error Codes
常见问题
基础概念
购买与计费
兼容与格式
连接与网络
功能特性
控制台操作
数据库表
性能与日志
数据库审计
TDSQL-C MySQL 版和云数据库 MySQL 有什么区别
相关协议
服务等级协议
服务条款
TDSQL-C 政策
隐私政策
数据处理和安全协议
通用参考
标准与认证
词汇表
联系我们

编译优化高性能版本

PDF
聚焦模式
字号
最后更新时间: 2025-12-24 15:22:41
TDSQL-C MySQL 版的 TXSQL 内核支持编译优化高性能版本,可以在保持原有兼容性、不更改内核内部实现逻辑的前提下,借助动态编译器优化手段考虑用户可能的输入行为,使得数据库内核在业务通用场景下表现出更强的性能、同时降低其使用功耗。本文为您介绍 TDSQL-C MySQL 版的编译优化高性能版本。

支持版本

内核版本 TDSQL-C MySQL 版5.7 2.1.11及以上。
内核版本 TDSQL-C MySQL 版8.0 3.1.12及以上。
说明:
编译优化高性能版本当前为灰度发布中,如需提前体验,请在满足以上数据库内核版本的前提下 提交工单 申请使用。

背景

随着现代 CPU 内部实现的日益复杂,云数据库默认的编译、配置和运行方法很难充分发挥 CPU 的性能潜力,导致大量 CPU 周期空转。这种现象在规模效应叠加的情况下,不仅造成硬件资源的浪费,而且还会浪费大量的功耗。因此,需要对云数据库进行优化,以最大限度地发挥 CPU 的性能潜力,减少 CPU 周期的空转,提高硬件资源的利用率,并降低功耗的浪费。
TDSQL-C MySQL 版在不更改数据库内核业务逻辑代码前提下,借助动态编译器优化手段,以最小的代价完成了内核性能提升和功耗减少。通过收集云数据库在典型/真实业务场景下的行为和性能消耗数据,解决默认编译方式对业务行为无感知的问题;分析数据库运行时的行为特征,结合 CPU 微架构的特点,利用编译优化技术使得优化之后的版本对 CPU 微架构更友好,可充分发挥 CPU 的性能潜力;通过大量的场景测试以保证优化效果在各种条件下不劣化。
通过以上技术手段,此版本实现了如下优化:
1. 基于数据库运行行为数据实现反馈优化,提升函数内联/函数重排/基本库重排的优化能力,从而大幅降低数据库 CPU ICache/ITLB 失效,提升性能。
2. 通过“链接时优化技术”增加编译优化视野,从单文件单函数扩展到跨文件/全二进制文件范围,可极大提升内联的优化空间,降低指令数。
3. 在实践中摸索出一套高效验证和分析的方法,确保效果接近理论极限和保证在各种场景下不劣化。


什么是编译优化

编译优化是指在编译代码时,通过对代码进行优化和调整编译参数,以提高程序的执行效率和性能的过程。

优化原理

TDSQL-C MySQL 版的编译优化高性能版本使用 PGO(profile guided optimization) 技术进行优化,PGO 技术能够解决传统编译器在执行优化时,只基于静态代码信息,而不去考虑用户可能的输入,从而无法对代码进行有效优化的问题。
PGO 技术主要分为以下三个阶段:
1. instrument:在 instrument 阶段,先对应用做一次编译,在此编译中,编译器会向代码中插入指令,以便下一阶段可以收集数据。这些指令分为三种类型,分别用于统计每个函数被执行了多少次、每个分支被执行了多少次(例如 if-else 的场景)以及某些变量的值(主要用于 switch-case 的场景)。
2. train:在 train 阶段,用户需要使用最常用的输入来运行上一阶段编译生成后的应用。由于上一阶段已经做好了收集数据的准备,所以在经过 train 阶段之后,该应用最常见的使用场景对应的数据就会被收集下来。
3. optimization:在 optimization 阶段中,编译器会利用上一阶段收集到的数据,对应用进行重新编译。由于上一阶段的数据来自于用户输入的最常见的用户场景,所以最后优化得到的结果就能在该场景下有更好的优化。
通过以上三个阶段的优化,TDSQL-C MySQL 版的编译优化高性能版本就能更好地适应用户的需求,提高应用的性能和效率。

性能测试

有关编译优化高性能版本的性能测试数据,您可参见以下文档。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈