MySQL Variables thread_stack 数据库 参数变量解释及正确配置使用

本站中文解释

thread_stack,指定线程的栈的大小(以字节为单位),默认为192KB。

由于MySQL使用的是Lamboard线程模型,每个线程都需要一块由操作系统分配的固定大小的内存,用于存储局部变量和函数栈, thread_stack 就是用来设置每个线程占用的内存大小。

主要用于指定一些MySQL需要涉及到的低级操作(比如排序、字符串匹配和函数调用)在全局堆栈中的内存大小。

如果thread_stack的大小不足,MySQL将会报Stack Overflow的错误,这个值也可以设置为合适的大小,以免造成不必要的麻烦。

设置方法:

在my.cnf文件中添加以下参数:

thread_stack = 256K

更多关于MySQL参数变量及用途可以参考MySQL官方文档:https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html

官方英文解释

thread_stack

Command-Line Format --thread-stack=#
System Variable thread_stack
Scope Global
Dynamic No
Type Integer
Default Value (64-bit platforms) 262144
Default Value (32-bit platforms) 196608
Minimum Value 131072
Maximum Value (64-bit platforms) 18446744073709550592
Maximum Value (32-bit platforms) 4294966272
Unit bytes
Block Size 1024

The stack size for each thread. The default is large enough
for normal operation. If the thread stack size is too small,
it limits the complexity of the SQL statements that the server
can handle, the recursion depth of stored procedures, and
other memory-consuming actions.

The block size is 1024. A value that is not an exact multiple
of the block size is rounded down to the next lower multiple
of the block size by MySQL Server before storing the value for
the system variable. The parser allows values up to the
maximum unsigned integer value for the platform (4294967295 or
232−1 for a 32-bit system,
18446744073709551615 or 264−1
for a 64-bit system) but the actual maximum is a block size
lower.


数据运维技术 » MySQL Variables thread_stack 数据库 参数变量解释及正确配置使用