系统变量怎么理解

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000818924

SHOW PROXYSESSION VARIABLES [ALL] id [LIKE ‘xx’];

参数说明:
带ALL参数时,展示指定Client Session的全部Session变量(包括:所有系统变量和用户变量)。

问题:
系统变量 和 用户变量 , 指的是什么? 或者说他们的区别是什么?

系统变量,是包含用户变量的啊。
Session变量 不就是 用户变量 吗?

1 个赞

说下我的理解:
系统变量:就是ob预定义的变量,包含global全局和session级别的变量;
具体看这个链接: 配置项与系统变量的区分
用户变量:这个地方的用户变量就是真的用户变量,因为有些应用在连接的时候,会设置一些自定义变量。或者叫做自定义变量会更合适些;

3 个赞

系统变量如楼上所说;
我理解,用户变量,是针对当前用户的变量,分两类,一类如当前会话current_user(),current_id(),current_database()这种初始化连接的时候系统自己设置的,第二类就是用户自定义指定的,set a:=1这种

2 个赞

配置总共分两部分:
配置项
1、集群级
对应的是所有zone(所有的observer)或一个zone(所有observer)
2、租户级
对应是一个observer下的一个租户或所有租户
系统变量
全局变量:一个租户下的所有用户
会话变量:一个租户下的一个用户连接的一个session

1 个赞

配置项
1、集群级
1.指定集群设置
2.指定server设置
3.指定zone设置
案例:memory_limit 集群级变量
总结:

  1. 集群级别参数,在一个集群仅仅一份。那个租户看到的都一样,
  2. 只能有sys租户进行设置

2、租户级
1.指定租户设置
2.指定server设置
3.指定zone设置
案例:max_stale_time_for_weak_consistency
注意:每个租户都有自己的一套系统变量
总结:

  1. 租户级别参数,每个租户一份,并且可以各不相同
  2. 每个租户都可以自行设置。sys租户可以给其他租户设置

参考文档:OceanBase分布式数据库-海量数据 笔笔算数

系统变量
1、系统级 set global
2、会话级 set session
注意:系统变量和配置项一起工作
比如系统配置项:enable_sql_audit
比如系统变量:ob_enable_sql_audit

1 个赞

个人理解系统变量就是执行 show variables 看到的东西。

用户变量就是 https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001432281 这篇文档介绍的东西,类似于这种:

这里简单总结了一篇博客《浅析系统变量、用户变量和配置项三者的区别》供您参考:OceanBase 社区

1 个赞

感觉只有 @码农101 老哥的这个回复是完全正确的!赞:+1:t2:

1 个赞