Matias Ruiz Asked: 2018-01-23 07:29:07 +0800 CST2018-01-23 07:29:07 +0800 CST 2018-01-23 07:29:07 +0800 CST MariaDB 上的系统动态变量是什么? 772 我是一个nweeby,我真的不明白什么是动态变量。我没有在文档中找到。真正什么是动态变量的概念。 mysql mariadb 1 个回答 Voted Best Answer Rick James 2018-01-24T09:17:00+08:002018-01-24T09:17:00+08:00 对于 MySQL/MariaDB 服务器“变量”: 动态:是——您可以SET更改变量并立即看到效果。 动态:否 -- 您需要更改配置文件 ( my.cnf) 并重新启动服务器。 这涵盖了大多数情况;有一些更复杂。此外,还有一些朝着使更多变量“动态”的方向发展,因此您会看到基于 MySQL/MariaDB 版本的差异。 此外,这通常是值的历史记录: 当服务器启动时,GLOBAL变量的副本是从my.cnf公式等中设置的。 当用户连接时,GLOBAL值被复制到SESSION副本中。 如果是动态的,SET variable_name = value则更改SESSION值。 SET GLOBAL ...将更改所有后续连接的默认值,而不是您当前的连接。这也有例外... 有些VARIABLES不区分SESSION和GLOBAL。例如,由于 InnoDB 的 buffer_pool 是在连接之间共享的,所以大多数设置是GLOBAL;每个 没有单独的值SESSION。 (对不起,如果我离题太多;它变得混乱。但通常你不需要担心这些问题。)
对于 MySQL/MariaDB 服务器“变量”:
SET
更改变量并立即看到效果。my.cnf
) 并重新启动服务器。这涵盖了大多数情况;有一些更复杂。此外,还有一些朝着使更多变量“动态”的方向发展,因此您会看到基于 MySQL/MariaDB 版本的差异。
此外,这通常是值的历史记录:
GLOBAL
变量的副本是从my.cnf
公式等中设置的。GLOBAL
值被复制到SESSION
副本中。SET variable_name = value
则更改SESSION
值。SET GLOBAL ...
将更改所有后续连接的默认值,而不是您当前的连接。这也有例外...有些
VARIABLES
不区分SESSION
和GLOBAL
。例如,由于 InnoDB 的 buffer_pool 是在连接之间共享的,所以大多数设置是GLOBAL
;每个 没有单独的值SESSION
。(对不起,如果我离题太多;它变得混乱。但通常你不需要担心这些问题。)