【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
运行插入语句SQL文件
【遇到的问题:问题现象及影响】
出现报错
Your query has been cancelled due to exceeding the allowed memory limit for a single SQL query. Please try narrowing your query scope or increase the tidb_mem_quota_query limit and try again.
由于超过了允许的内存限制,您的查询已被取消
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
sql超过内存限制了,资源充足的话调整下tidb_mem_quota_query
为什么我这边单条语句超过内存不是这么提示的?
但原因是一样的,都是语句使用的内存超过了tidb_mem_quota_query的限制
增加 TiDB 配置文件中的 tidb_mem_quota_query
参数的值,以扩大单个查询可使用的内存限制
tidb_mem_quota_query默认1g 不够了加到4g或者8g试试
加了以后为什么不生效呀
用set加
SET GLOBAL tidb_server_memory_limit = “32GB”;
如何配置一条 SQL 执行过程中的内存使用阈值
使用系统变量 tidb_mem_quota_query
来配置一条 SQL 执行过程中的内存使用阈值,单位为字节。例如:
配置整条 SQL 的内存使用阈值为 8GB:
SET tidb_mem_quota_query = 8 << 30;
配置整条 SQL 的内存使用阈值为 8MB:
SET tidb_mem_quota_query = 8 << 20;
配置整条 SQL 的内存使用阈值为 8KB:
SET tidb_mem_quota_query = 8 << 10;
1 个赞
那个8KB多少有点危险,还记得之前有个同学就这么设置的,结果集群启动都启动不了,因为内部sql也被限制了~~~
所以可以跟单位加靠谱点
不是,是那位同学看到可以设置的那么小,他想试试设置小之后有什么效果。幸亏当时用的个人测试环境测试的。
回头我也试试,你们设置了多少就出问题了?
不是我,是社区的一个小伙伴,你可以设置8KB试试。
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。