优化 SQL 性能概述
本文介绍了如何优化 TiDB 中 SQL 语句的性能。为了获得良好的性能,你可以从以下几个方面入手:
- SQL 性能调优
- 架构设计:根据你的应用负载模式,可能需要调整表结构以避免事务冲突或热点问题。
SQL 性能调优
为了获得良好的 SQL 语句性能,你可以遵循以下指南:
- 扫描尽可能少的行。建议只扫描你需要的数据,避免扫描多余的数据。
- 使用合适的索引。确保在 SQL 的
WHERE
子句中的列上有对应的索引。如果没有,语句将涉及全表扫描,从而导致性能下降。 - 使用合适的连接类型。根据查询中涉及的表的相对大小,选择合适的连接类型。一般来说,TiDB 的基于成本的优化器会选择性能最优的连接类型。但在少数情况下,你可能需要手动指定更优的连接类型。
- 使用合适的存储引擎。对于混合 OLTP 和 OLAP 负载,推荐使用 TiFlash 引擎。详情请参见 HTAP Query。
架构设计
在 调优 SQL 性能 后,如果你的应用仍然无法获得良好的性能,可能需要检查你的架构设计和数据访问模式,以避免以下问题:
- Transaction contention. 有关如何诊断和解决事务冲突,参见 Troubleshoot Lock Conflicts。
- Hot spots. 有关如何诊断和解决热点问题,参见 Troubleshoot Hotspot Issues。