跳转到主要内容

关于配额和查询复杂度

配额查询复杂度都是在 ClickHouse 中限制用户可执行操作的有效方式。 配额是在特定时间间隔内施加限制,而查询复杂度则不受时间间隔影响。 本文通过示例说明如何应用这两种不同的方法。

示例数据

为便于说明,以下示例均以这张简单的示例表为基础:

使用配额

在此示例中,我们将创建一个角色,并为其应用一个配额,限制其在每个 10 秒时间间隔内最多只能检索 10 行结果:
现在以用户 user_with_quota 的身份登录
请注意,用户还需再等待 5 秒,才能获得新的 10 行结果集“配额”。

使用查询复杂度

在此示例中,我们将创建一个角色,并对其应用一个查询复杂度 SETTING,使每个查询最多只返回 1 行。
现在以 user_with_query_complexity 用户身份登录:
每当尝试让结果集返回超过 1 行时,查询复杂度约束就会触发。
最后修改于 2026年6月25日