在 TiDB 中,RU(Request Unit)资源计量单位,用于衡量数据库操作(如读、写、SQL 计算等)所消耗的系统资源(包括 CPU、内存、磁盘 I/O 等)。简单来说,RU 是 TiDB 对用户请求所占用资源的量化指标。


RU 的核心作用

  1. 资源管控
    通过 RU 的计量,TiDB 可以对不同用户或业务进行资源分配和限制,避免某些高负载操作影响整体集群稳定性。例如,限制某类查询的 RU 用量,防止其耗尽集群资源。

  2. 按需分配
    RU 允许用户根据业务优先级分配资源。例如,核心业务可以分配更多 RU,确保其性能;非关键业务则限制 RU,避免资源争抢。

  3. 限制过载
    如果某类请求的 RU 消耗超过预设阈值,TiDB 会对其进行排队或拒绝,保护集群不被突增流量拖垮。


RU 的常见场景

  • 资源组(Resource Group)
    在 TiDB 的 Resource Control 功能中,可以为不同资源组设置 RU 配额。例如:

CREATE RESOURCE GROUP batch_jobs RU_PER_SEC = 1000;  -- 限制该组每秒最多消耗 1000 RU
这样,绑定到该组的 SQL 请求会受 RU 配额限制。

  • 监控与优化
    通过 TiDB 监控面板(如 Grafana)或系统表 INFORMATION_SCHEMA.RESOURCE_GROUPS,可以观察各资源组的 RU 消耗情况,帮助定位性能瓶颈或优化资源分配。

如何计算 RU?

TiDB 根据 SQL 操作的实际资源消耗动态计算 RU 值,例如:

  • 1 次简单的 KV 点读 ≈ 1 RU
  • 1 次复杂的聚合计算可能消耗数百 RU
    具体计算规则由 TiDB 内部机制动态调整,用户无需手动计算。

总结

RU 是 TiDB 实现精细化资源管理的核心单位,通过它可以在多租户、混合负载等场景下,公平合理地分配集群资源,平衡性能与稳定性。如果你需要进一步调整 RU 配置或监控资源使用,可以查阅 TiDB 官方文档的 Resource Control 部分。