MySQL中的全局变量和会话(临时)变量是服务器运行时的两种不同类型的系统变量,它们用于控制服务器的行为和特性。

定义一个局部变量(会这个就够了

临时变量只影响当前连接的用户会话。每个连接到MySQL服务器的客户端都可以有自己的会话变量设置,这不会影响到其他客户端。例如,你可以为当前会话设置SQL查询的超时时间或事务隔离级别等。当客户端断开连接时,这些设置就会失效。

方式:set @变量名

注意哦:这个局部变量是Session回话级别的,关闭本次回话,也就是在你Navicat关闭"新建查询"变量就会消失了。

-- 设置一个局部变量,不会影响全局哦
set @charId = 30;

-- 查看自己的变量
select @charId;

-- 在SQL中的使用案例
select * from chars where charid = @charId;

定义全局变量(了解即可)

全局变量影响MySQL服务器的整体操作。它们对所有连接到服务器的用户和会话都有效。例如,全局变量可以用来设置服务器级别的缓存大小、连接超时设置、最大连接数等。当你更改一个全局变量时,它将影响所有新建立的连接。对于已经存在的连接,除非这些连接被重新启动或者全局变量是动态的并被明确地设置为影响现有会话,否则不会受到影响。

注意哦:全局变量变量名不允许随便设置。必须是MySQL系统能够识别的变量名称才可以,比如:slow_query_log。还有一点,设置的内容,重启MySQL后,就会恢复成配置文件的设置内容,如果要永久生效,记得在MySQL配置文件中设置哦!!!

写法1

set @@global.slow_query_log = 'OFF';
select @@global.slow_query_log

这个查询出来的结果是 0,我们明明设置的是OFF。当我们OFF改为ON时,查询结果就是1。所以不建议写法1使用。

写法2 推荐

-- 设置系统全局慢日志开启
set global slow_query_log = 'ON';

-- 查看系统全局慢日志相关字段信息
show variables like 'slow_query%'; -- 注意慢查询时右模糊搜索哦,查询结果ON或者OFF,以及日志文件所在位置
show variables like '%long_query_time%';

结果1

结果2

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤