`

关于session variables 和 global variables

阅读更多
背景

    有同学问到这样一个问题:原来的binlog格式是statement,为什么执行了 set global binlog_format='row' 和 set binlog_format='row',在binlog里面还是会看到有生成statement格式的事件?



变量分类

很多文章都说到MySQL的按照可见性范围分成两类 session和global。实际上是三类 session_only, both, global_only.如下图见到的关系。


session_only是仅线程级别意义的,比如 last_insert_id

    global_only 是仅全局级别有意义的,比如 sync_master_info

    both则是同时有全局和线程两个状态。这类变量需要特别注意它的规则:

    1) 每个新线程创建时从global获取值,设置为线程值

    2) 单独执行 set var_name=var_value时,只改变本线程的值,不改变global.value

       单独执行 set global var_name=var_value时,只改变全局的值,本线程的不改变



    前面说到的问题中,binlog_format就是这种both类的变量。因此即使两个命令都执行了,但是对于那些执行命令之前已经存在的长连接线程的本地值,仍然是statement,因此仍会生成statement格式的binlog 事件。



区分变量类型

既然有三种类型,那么如何区分呢。

在现在的MySQL各个版本中, show variables 是等效与 show session variables. 如果要看global类的,需要特别指明 show global variables. 但是这里容易造成一个误解。

需要明确的是, show global variables 是包含上图蓝色和绿色部分,而show session variables 是包含全部!

这个效果是因为在执行show variables的时候,作了这么一个判断

“// don't show session-only variables in SHOW GLOBAL VARIABLES”(来源于代码注释),但是对于show session variables这个命令,则无限制,因此显示所有的变量。不太合理



因此如果要归纳那些session_only的,可以将这两个命令的结果作个diff。但要看global_only的就没有比较快捷的方法了。
  • 大小: 27.5 KB
分享到:
评论

相关推荐

    出现错误mysql Table 'performance_schema...解决办法

    当遇到错误“mysql Table 'performance_schema.session_variables' doesn't exist”时,这通常意味着尝试访问的`performance_schema`中的`session_variables`表不存在。这个表记录了当前会话的系统变量值,对于分析...

    Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现

    在Tensorflow中,图(tf.Graph)和会话(tf.Session)是两个核心概念,它们构成了Tensorflow程序的基础架构。 **图(tf.Graph)** 计算图是Tensorflow中用于描述计算流程的数据结构,它是一个有向图,由节点(Nodes...

    出现错误mysql Table ‘performance_schema…解决办法

    这个存储引擎提供了一系列表,用于记录和展示关于数据库操作的详细信息,如进程等待时间、锁信息、互斥变量等,帮助数据库管理员(DBA)诊断性能问题和优化数据库配置。 在上述描述中,遇到的问题是当使用MySQL ...

    mysql中自增auto_increment功能的相关设置及问题

    涉及知识介绍: mysql服务器维护着2种mysql的系统参数(系统变量):全局变量(global variables)和会话变量(session variables)。它们的含义与区别如其各占的名称所示,session variables是在session级别的,对...

    sinatra_session_global_funs:Sinatra,会话和全局变量的“有趣”

    本项目“sinatra_session_global_funs”显然旨在探讨Sinatra框架中关于会话管理和全局变量的一些特殊用法和可能产生的“有趣”现象。在深入这个话题之前,我们先来理解一下Sinatra的基本概念和会话以及全局变量的...

    第16章_变量、流程控制与游标.docx

    - **查看系统变量**:可以使用`SHOW GLOBAL VARIABLES`显示全局变量,`SHOW SESSION VARIABLES`显示会话变量,或者`SHOW VARIABLES LIKE '%标识符%'`查看特定变量。 - **修改系统变量**:全局变量可通过修改配置...

    第16章_变量、流程控制与游标1

    查看系统变量可以通过`SHOW GLOBAL VARIABLES`和`SHOW SESSION VARIABLES`命令,也可以使用`SELECT @@global.变量名`或`SELECT @@session.变量名`来查看特定变量的值。系统变量的修改可以通过配置文件或`SET`命令...

    第16章_变量、流程控制与游标3

    可以通过`SHOW GLOBAL VARIABLES`和`SHOW SESSION VARIABLES`命令查看系统变量,使用`SET`命令修改它们的值。如果需要永久更改,可以编辑配置文件,但这需要重启MySQL服务。 2. **用户变量** 用户变量允许用户...

    TensorFlow Session会话控制&Variable变量详解

    TensorFlow作为目前最流行的机器学习框架之一,其核心概念包括Session和Variable。下面我将详细解析这两个核心概念,并结合代码示例说明其使用方法和注意事项。 首先,我们来了解Session的用法。在TensorFlow中,...

    解决TensorFlow模型恢复报错的问题

    通过理解变量的生命周期和使用`tf.global_variables_initializer()`以及`tf.local_variables_initializer()`,可以避免这类错误,顺利进行模型的训练和恢复。希望本文的分享能对遇到此类问题的开发者提供帮助,确保...

    mysql简单简述锁机制

    `查询表级锁的争用情况,`SHOW VARIABLES LIKE '%concurrent_insert%'`检查并发插入的设置,并通过`SET GLOBAL concurrent_insert = 1;`来修改此值。获取和释放表级锁的SQL语句分别为`LOCK TABLES XXX READ|WRITE;`...

    【MySQL】存储过程(十一).pdf

    SHOW [SESSION | GLOBAL] VARIABLES LIKE '变量名'; SELECT @@[SESSION | GLOBAL]系统变量名; ``` - **设置系统变量**: ```sql SET [SESSION | GLOBAL] 系统变量名 = 值; SET @@[SESSION | GLOBAL]系统变量...

    MySQL 参数相关概念及查询更改方法

    MySQL 提供了两种类型的系统变量:全局系统变量(global)和会话系统变量(session)。全局变量影响整个服务器实例,而会话变量则针对每个客户端连接独立设置。 全局系统变量的设置通常在MySQL服务启动时进行,这...

    mysql缓存优化

    ### MySQL缓存优化详解 ...以上是关于 MySQL 存储引擎的选择以及查询缓存配置与优化的基本介绍。通过对存储引擎的选择和合理配置查询缓存,可以有效地提高 MySQL 数据库的性能和响应速度,满足不同业务场景的需求。

    Tensorflow加载预训练模型和保存模型的实例

    sess.run(tf.global_variables_initializer()) # 保存模型 saver.save(sess, './checkpoint_dir/MyModel') # 也可以在保存时指定global_step参数 saver.save(sess, './checkpoint_dir/MyModel', global_step=1000)...

    标准pso代码-鲁.zip_On Strategy_algorithm,pso_cec2013_pso for decisio

    Large scale global optimization is an active research topic in the real-parameter optimization. Based on the analysis of the characteristics of large scale problems, a stochastic dynamic cooperative ...

    DMS_PSO.zip_On Strategy_algorithm_dms_dms-pso_dynamic pso

    Large scale global optimization is an active research topic in the real-parameter optimization. Based on the analysis of the characteristics of large scale problems, a stochastic dynamic cooperative ...

    PSO.zip_On Strategy_algorithm_article_cec2013_pso dynamic

    Large scale global optimization is an active research topic in the real-parameter optimization. Based on the analysis of the characteristics of large scale problems, a stochastic dynamic cooperative ...

    mysql数据库优化.docx

    全局设置(GLOBAL)会影响所有连接,而会话设置(SESSION)只影响当前连接。 1.1.4. 设置缓存结果的最大值和最小值 `query_cache_limit` 设定了单个查询结果的最大缓存大小,而 `query_cache_min_res_unit` 定义了...

Global site tag (gtag.js) - Google Analytics