系统变量
概念
这是一个宽泛的概念,所谓的“系统变量”就是在进程内全局生效值的集合,好吧,这个说法还是有些抽象。
我们都用过手机的设置功能,可以调整手机的音量大小、屏幕的亮度等,这就是手机操作系统的全局变量了。
我们使用某个视频软件看电影的时候,同样的可以调节亮度,不过,当你切换到其他应用的时候,你会发现亮度又变回去了。
MySQL中也有一些系统变量控制着服务进程的行为,可以通过启动参数或者配置文件进行启动时的初始化配置,有一些也可以在程序运行时进行动态的修改。
这里不会讲解启动参数形式的配置行为,因为这太麻烦了。
MySQL 配置文件
由于配置项太多了,而且这玩意儿又是通用的,所以,贴一篇文章:https://blog.csdn.net/weixin_43891622/article/details/137800567
(真的不是我懒,好吧,确实是)
作用域
就像上文的那个例子一样,不同的应用程序可以设置不同的屏幕亮度,互不干扰,MySQL中同样有类似的处理。
MySQL中,系统变量的作用范围有两种:
Global:全局的作用范围,影响服务器的整体操作,也可以称为全局变量。
Session:会话范围,影响某个客户端的连接操作,也可以称为会话变量。
服务器程序启动的时候,会初始化全局变量(加载配置文件或者启动选项)。服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时“继承”全局变量的当前值进行初始化工作。
注意事项
- Global 和 Session 范围是取交集的,即有些变量只有Global作用范围,如
max_connection
,它表示服务器程序支持同时最多少个客户端连接;有些变量只有Session作用范围,比如insert_id
,它表示在对某个包含auto_increment
列的表进行插入时,该列初始的值。 - 有些系统变量是只读的,不能设置值。比如
version
,代表当前MySQL的版本
状态变量
就是一堆描述当前服务程序运行状态的变量。只能有服务程序,也就是MySQL自己设置。比如Thread_connected
表示当前有多少客户端与服务器建立了连接。
与系统变量一样,状态变量也有Global和Session两个作用范围。
总结
本章也相对简单,目的在于知道有这些东西,而不在于那些查看或者设置的语句,这些都是可以百度的。
2025/01/03
writeBy kaiven