- 文档首页
云数据库 TiDB 版
性能调优
SQL 调优
SQL 调优概述
SQL 调优概述
本文介绍如何在云数据库 TiDB 版中调优 SQL 性能。您可参照文中方案进行优化,以达到最优的 SQL 执行性能。
要提高 SQL 语句的性能,请考虑以下原则。
- 最小化扫描数据的范围。最佳实践始终是只扫描最小范围的数据,避免扫描所有数据。
- 使用适当的索引。对于 SQL 语句中 WHERE 子句中的每个列,确保有相应的索引。否则,WHERE 子句将扫描全表并导致性能不佳。
- 使用适当的连接类型。根据查询中每个表的大小和相关性,选择正确的连接类型非常重要。通常,TiDB 中的基于成本的优化器会自动选择最优的连接类型。
- 使用适当的存储引擎。对于混合事务和分析处理(HTAP)工作负载,建议使用 TiFlash 存储引擎。请参见 HTAP 查询。
以下为优化慢查询的几种方法:
在云数据库 TiDB 版的诊断 > SQL 语句标签页,会展示您所有数据库的 SQL 语句的执行统计信息。您可以使用它来识别和分析总执行时间或单次执行时间较长的 SQL 语句。
说明
在此页面上,具有相同结构的 SQL 查询(即使查询参数不匹配)会被归类为同一个 SQL 语句。例如,SELECT * FROM employee WHERE id IN (1, 2, 3) 和 select * from EMPLOYEE where ID in (4, 5) 都属于同一个 SQL 语句 select * from employee where id in (...)。
您可以使用 EXPLAIN 检查 TiDB 在编译阶段生成的执行计划。优化器会评估成百上千种可行的执行方案,从中选出资源开销最低、执行效率最高的最优计划。若 TiDB 选择的执行计划不是最优的,您可以使用 EXPLAIN ANALYZE 进行诊断。 TiDB 通过语法解析器解析原始 SQL 语句并完成基础合法性校验后,会先对查询执行一系列逻辑等价改写。更多信息,请参见 SQL 逻辑优化。 经过上述等价变换,逻辑执行计划会变得更易于优化处理。完成逻辑改写后,TiDB 将生成与原始语句语义完全一致的逻辑计划,再结合数据分布情况与各算子的执行成本,生成最终物理执行计划。更多信息,请参见 SQL 物理优化。 此外,TiDB 支持开启执行计划缓存功能,减少 PREPARE 语句重复构建执行计划的资源消耗,详情请参见预处理执行计划缓存。 慢 SQL 查询最常见的原因是 SELECT 语句执行全表扫描或使用了错误的索引。您可以使用 EXPLAIN 或 EXPLAIN ANALYZE 检查的执行计划并找出执行慢的原因。有以下三种方法可以进行优化,详情请参见 SQL 性能调优。 以下提供最佳实践帮助您更好的进行 SQL 调优。
创建索引的速度默认是保守的,在某些场景下可以通过修改变量来加快索引创建过程。 该文档部分内容附带平凯云平台链接,以下简称为外链。若遇到以下分类对应的外链时,请参考以下说明。现将外链文档划分为不同类型,并明确各类文档可作为参考依据的范围:
最近更新时间:2026.07.02 18:54:10