MySQL服务器的thread_stack参数 - 它是什么?它应该有多大?

sso*_*zak 14 mysql configuration mysql-management

几天前我从MySQL数据库得到以下错误:

线程堆栈溢出:用于196608字节堆栈的68744字节,需要128000字节.使用'mysqld -O thread_stack =#'指定更大的堆栈.

我发现的所有文档都说:

MySQL 4.0.10之前的默认值为64KB,之后为192KB.如果线程堆栈大小太小,则会限制服务器可以处理的SQL语句的复杂性,存储过程的递归深度以及其他消耗内存的操作.

我将变量thread_stack设置为256K,但它只是一个随机值.现在它解决了这个问题,但我真的想知道它应该有多大,得到一些示例值或用法.例如:

  • 使用96KB(x KB)的线程堆栈可以做什么,不能做什么?
  • 如何计算我需要多大的线程堆栈?

drv*_*ijk 13

今天刚遇到类似的错误.关于该变量的MySQL文档提供了一个默认值的提示,该默认值应该足够(对于32位系统为192K,对于64位系统为256K),以及查看MySQL Benchmark套件.