全局变量和局部变量

在服务器启动时,会将每个全局变量初始化为其默认值(可以通过命令行或选项文件中指定的选项更改这些默认值)。然后服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用相应全局变量的当前值初始化。

举一个例子,在服务器启动时会初始化一个名为default_storage_engine,作用范围为GLOBAL的系统变量。之后每当有一个客户端连接到该服务器时,服务器都会单独为该客户端分配一个名为default_storage_engine,作用范围为SESSION的系统变量,该作用范围为SESSION的系统变量值按照当前作用范围为GLOBAL的同名系统变量值进行初始化。

很显然,通过启动选项设置的系统变量的作用范围都是GLOBAL的,也就是对所有客户端都有效的,因为在系统启动的时候还没有客户端程序连接进来呢。了解了系统变量的GLOBAL和SESSION作用范围之后,我们再看一下在服务器程序运行期间通过客户端程序设置系统变量的语法:

SET [GLOBAL|SESSION] 系统变量名 = 值;

或者写成这样也行:

SET [@@(GLOBAL|SESSION).]var_name = XXX;

比如我们想在服务器运行过程中把作用范围为GLOBAL的系统变量default_storage_engine的值修改为MyISAM,也就是想让之后新连接到服务器的客户端都用MyISAM作为默认的存储引擎,那我们可以选择下边两条语句中的任意一条来进行设置:

语句一:SET GLOBAL default_storage_engine = MyISAM;

语句二:SET @@GLOBAL.default_storage_engine = MyISAM;

如果只想对本客户端生效,也可以选择下边三条语句中的任意一条来进行设置:

语句一:SET SESSION default_storage_engine = MyISAM;

语句二:SET @@SESSION.default_storage_engine = MyISAM;

语句三:SET default_storage_engine = MyISAM;

从上边的语句三也可以看出,如果在设置系统变量的语句中省略了作用范围,默认的作用范围就是SESSION。也就是说SET 系统变量名 = 值和SET SESSION 系统变量名 = 值是等价的。

查看不同作用范围的系统变量

既然系统变量有作用范围之分,那我们的SHOW VARIABLES语句查看的是什么作用范围的系统变量呢?

答:默认查看的是SESSION作用范围的系统变量。

当然我们也可以在查看系统变量的语句上加上要查看哪个作用范围的系统变量,就像这样:

SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];

mysql 局部变量集合_mysql全局变量和局部变量相关推荐

  1. mysql中局部变量说法正确的是_mysql全局变量和局部变量

    全局变量和局部变量 在服务器启动时,会将每个全局变量初始化为其默认值(可以通过命令行或选项文件中指定的选项更改这些默认值).然后服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用 ...

  2. mysql 查询 集合_MySQL使用集合函数进行查询操作实例详解

    本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...

  3. mysql 自然数集合_MySQL自然语言全文搜索

    在本教程中,您将通过使用MATCH()和AGAINST()函数来了解MySQL自然语言全文搜索. MySQL自然语言全文搜索简介 在自然语言全文搜索中,MySQL查找与自由文本自然人类语言查询相关的行 ...

  4. mysql 自然数集合_Mysql基本操作

  5. C++中局部变量可以和全局变量重名吗?

     C++中局部变量可以和全局变量重名吗? 这是一个作用域的问题.一个声明将一个名字引进一个作用域:局部变量(通常在函数中定义)的作用域是从声明的那一点开始,直到这个声明所在的块结束为止(一个块就是 ...

  6. C语言 全局变量和局部变量区别 - C语言零基础入门教程

    目录 一.全局变量和局部变量简介 1.全局变量简介 2.局部变量简介 二.全局变量和局部变量注意事项 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...

  7. python中全局变量和局部变量关键字_Python中都全局变量和局部变量

    Python中都全局变量和局部变量 Python中都全局变量和局部变量 定义 全局变量:函数体之外定义的变量 局部变量:函数体之内定义的变量 下述代码中,t是全局变量,m是局部变量 t = 1 def ...

  8. 10.前端JavaScript之【函数】【全局变量与局部变量】

    目录 1.函数 2.函数的全局变量与局部变量 1.函数 1.定义(1)在python定义函数需要用到关键字def在js中定义函数需要用到关键字function(2)格式:function 函数名(形参 ...

  9. 搞懂JavaScript全局变量与局部变量,看这篇文章就够了

    目录 1.什么是全局变量和局部变量 2.全局变量和局部变量的声明 2.1 全局变量的声明 2.2 局部变量的声明 3.全局变量和局部变量一些常见问题 3.1全局变量跟局部变量重名 3.2 零散变量的问 ...

  10. 局部变量,全局变量(外部变量),静态局部变量,静态全局变量

    今天被问到了一个问题:如何让请求的类延迟释放 如果要延迟释放或者在程序整个生命周期都存在可以考虑两种方式,一是定义一个静态变量,二是用单例.用单例本质上用的是静态变量. 单例的写法如下: + (ins ...

最新文章

  1. 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
  2. 如何使double为整数时不带小数点
  3. JAVA中用 SQL语句操作小结
  4. Hibernate3的配置参数汇总
  5. 【荐】说说CSS Hack 和向后兼容
  6. 缓存 Cache-Control:max-age symfony
  7. Django从理论到实战(part54)--MEDIA_ROOT和MEDIA_URL
  8. es中的xpack插件下载_ppt中插入flash动画工具-PowerPoint中插入Flash插件下载电脑版...
  9. 【POJ3784】Running Median(中位数,对顶堆)
  10. asp.net ashx处理程序中switch case的替代方案总结
  11. setsockopt中参数之SO_REUSEADDR的意义
  12. android fps 检测工具,Android FPS监测 方法总结
  13. QQ坦白说BUG 找出对方
  14. ArcEngine代码 两规冲突检测
  15. android8.0的电池图标,Android 8.0 电池图标 显示分析
  16. Maven打包 错误: 程序包org.junit不存在
  17. kubeadm工作原理-kubeadm init原理分析-kubeadm join原理分析
  18. c语言计时纳秒_C代码中以纳秒为单位计算函数时间
  19. 理解 alter table nologging
  20. 多路脉冲发生器设计(脉冲个数,脉冲宽度可控)

热门文章

  1. configure: error: C++ compiler cannot create executables
  2. Codrops 优秀教程:实现效果精美的多层推拉菜单
  3. Farseer Physics Engine
  4. 微软.Net RIA Services项目前景简评
  5. Atitit 提升开发效率 设计简化 目录 1. 防止过度设计 1 2. 优先使用db和os的自带功能,防止垃圾代码膨胀 2 2.1. 定时调度,优先使用db定时和os的cron定时 2 2.2
  6. Atitit 关于建立知识库体系的方案
  7. atitit agt sys 设置下级代理功能设计.docx
  8. Atitit.电脑图片与拍摄图片的分别
  9. paip.flex or Silverlight
  10. 【交易技术前沿】浅析基金业推进数据治理的阻碍及应对建议