MySQL变量
MySQL 变量详解:系统变量与自定义变量的使用
MySQL 中的变量是存储数据的容器,分为系统变量(MySQL 内置,控制数据库行为)和自定义变量(用户定义,用于查询或存储过程中传递数据)。合理使用变量可简化操作、提升脚本灵活性。本文详细解析两类变量的定义、使用及区别。
系统变量:控制 MySQL 运行行为
系统变量是 MySQL 预定义的变量,用于配置数据库的运行参数(如连接数、缓存大小等),分为全局变量(影响所有会话)和会话变量(仅影响当前会话)。
系统变量的分类与作用
| 类型 | 作用范围 | 生效时机 | 示例 |
|---|---|---|---|
| 全局变量 | 所有会话(连接) | 重启 MySQL 或通过 SET GLOBAL 修改后生效 |
max_connections(最大连接数) |
| 会话变量 | 当前会话(连接) | 会话启动时继承全局变量,SET SESSION 修改后立即生效 |
autocommit(自动提交开关) |
查看系统变量
(1)查看所有系统变量
-- 查看所有全局变量
SHOW GLOBAL VARIABLES;
-- 查看所有会话变量(默认显示当前会话)
SHOW SESSION VARIABLES; -- 或简写为 SHOW VARIABLES;
(2)过滤查询特定变量
使用 LIKE 匹配变量名(支持通配符 %):
-- 查看所有包含“timeout”的全局变量
SHOW GLOBAL VARIABLES LIKE '%timeout%';
-- 查看当前会话的字符集变量
SHOW SESSION VARIABLES LIKE 'character_set_%';
(3)查询单个变量的值
通过 @@ 符号访问变量: