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

时间:2010-05-27 08:32:00

标签: configuration mysql-management mysql

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

  

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

我发现的所有文档都说:

  

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

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

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

1 个答案:

答案 0 :(得分:11)

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