MySQL数据库中区分全局变量和会话变量。

前言

当我们修改数据库配置时,我们要知道,通过不通过的方式,修改数据库配置,生命周期是不同的。有时候仅仅在一次会话中有效,有时候全局生效,就算断开连接,重启服务,依然生效。

全局变量

定义

写在配置文件中的就是全局变量,也可以称之为系统变量。

使用:

方法一: 修改MySQL配置文件。

方法二: set @@global.变量名称。如:SET @@global.profiling_history_size = 25;

两种方法,推荐使用方法一通过改变配置文件修改,修改配置文件后,重启MYSQL服务器。

之所以不推荐方法二,因为这种方式修改的全局变量,在连接断开后,再次连接确实还生效,和会话变量确实不一样,但是有一个问题,你重启服务后,就失效了。方法一是永久的,方法二比会话变量强一点。

会话变量

定义:

客户端连接MySQL时,相当于建立了会话,会话变量和全局变量基本一致,在这次会话过程中,可以对全局变量进行修改。

使用:

通过命令行进行修改,不需要重启服务器,比如开启sql语句剖析功能。SET profiling = 1;

有的人改变会话变量时,发现修改失败,是你账号权限低的原因,超级管理员才可以修改,修改你自己笔记本root账户可以,公司的你改不成。

全局变量修改配置文件后,一直生效。

会话变量通过命令行修改后,仅在此次连接此次会话过程中有效。

用户变量

定义:

用户自定义变量,用于后边的sql执行。在整个连接过程中有效。

用户变量和局部变量,没有什么权限之说,都是自己的。

使用:

使用@自定义变量,这里和全局变量区分一下,全局变量是@@。

局部变量

定义

常用于存储过程,用于交换数据。也可以这么理解:存储过程中的变量就是局部变量,存储过程一结束,变量就死亡。

局部变量只在begin-end语句块之间有效。

使用:

使用DECLARE关键字定义。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值