几天前,我从 MySQL 数据库中收到以下错误:
线程堆栈溢出:196608 字节堆栈使用了 68744 字节,需要 128000 字节。使用 'mysqld -O thread_stack=#' 指定更大的堆栈。
我发现的所有文档都说:
MySQL 4.0.10 之前的默认值为 64KB,之后为 192KB。如果线程堆栈大小太小,则会限制服务器可以处理的 SQL 语句的复杂性、存储过程的递归深度以及其他消耗内存的操作。
我将变量 thread_stack 设置为 256K,但它只是一个随机值。现在它解决了这个问题,但我真的很想知道它应该有多大,获取一些示例值或用法。例如:
- 我可以用 96KB (x KB) 的线程堆栈做什么和不能做什么?
- 如何计算我需要多大的线程堆栈?