如何配置用户的资源使用上限_MAX_QUERIES_PER_HOUR查询频率限制

MySQL 8.0+ 仅支持通过 CREATE/ALTER USER ... WITH MAX_QUERIES_PER_HOUR 设置频率限流,按自然小时统计语句总数,不区分类型、不看耗时,不可自定义窗口;GRANT ... WITH 已废弃且逻辑危险,应禁用。MySQL 8.0+ 怎么给用户加 MAX_QUERIES_PER_HOUR 限制直接用 CREATE USER 或 ALTER USER 设置,这是唯一原生支持的"频率限流"方式。它不拦单条慢查询,只卡单位时间内的语句总数------适合防轮询、脚本误跑、爬虫扫库这类高频轻量请求。实操建议:CREATE USER 'api_user'@'%' WITH MAX_QUERIES_PER_HOUR 120; ------ 新建用户时直接绑定,最干净ALTER USER 'report_user'@'localhost' WITH MAX_QUERIES_PER_HOUR 300; ------ 已有用户可随时调整,无需重连该限制对所有语句生效(SELECT/INSERT/UPDATE/DELETE/SET 都算),但 COMMIT、ROLLBACK、SHOW 等不计入注意:不是每秒或每分钟,是严格按"自然小时"滚动(从 00:00 开始计数),不能自定义窗口为什么 GRANT ... WITH MAX_QUERIES_PER_HOUR 在 MySQL 8.0+ 不推荐用这个语法在 5.7 是合法的,但在 8.0+ 已被废弃,且逻辑极容易踩坑:它只对当前 GRANT 语句中显式列出的权限生效,没列的权限完全不受限。比如你写 GRANT SELECT ON db.* TO u@h WITH MAX_QUERIES_PER_HOUR 100;,那用户后续如果还有 UPDATE 权限(来自另一条 GRANT),更新操作就完全绕过限制。更糟的是,多个 GRANT 记录共存时,系统取的是各条里最大的值,不是累加,查问题时数值对不上,调试成本高。所以:一律用 CREATE/ALTER USER ... WITH,别碰带 WITH 的 GRANT。MAX_QUERIES_PER_HOUR 真的能防住大查询吗不能。它只计数,不看执行时间、不看扫描行数、不看内存占用。一条 SELECT SLEEP(30) 算 1 次,一条 SELECT * FROM huge_table WHERE ... 也只算 1 次。真正耗资源的大查询,它完全不管。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
JOker_Chu_13 分钟前
知识图谱详解:从图结构、关系建模到查询与应用
数据库·知识图谱·database·neo4j
淼澄研学17 分钟前
Python实战:基于LangChain与Chroma构建企业级RAG知识库问答系统
开发语言·python·langchain
tryCbest22 分钟前
搭建企业知识库之Milvus 向量数据库
数据库·milvus
辰辉创聚28 分钟前
In Vivo抗体是什么?| 体内抗体与普通科研抗体的区别
人工智能·python·时序数据库·in vivo抗体·体内抗体·体内级抗体
深圳市宝华视联31 分钟前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
czhc114007566338 分钟前
2026-08-24 博客:几个让你少踩坑的概念
数据库
门思科技1 小时前
LoRaWAN Regional Parameters:为什么 CN470 和 EU868 的频点数不同
python·物联网
ACP广源盛139246256731 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 Serdes 长距离视频传输芯片 GSV5800 在私有化 AI 服务中的价值与应用场景
大数据·数据库·人工智能·嵌入式硬件·矩阵·开源·音视频
oradh1 小时前
Oracle RMAN备份脚本、RMAN还原恢复测试、RMAN常用语句
数据库·oracle·rman备份脚本·rman还原恢复测试·rman常用语句
汽车仪器仪表相关领域1 小时前
ZDT‑I伺服电机测试系统:四象限动态加载
大数据·数据库·分布式·功能测试·汽车·压力测试·可用性测试