旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

详细讲解mysql全局变量与局部变量_MySQL教程,mysql,全局变量,局部变量

作者:搜教程发布时间:2020-01-28分类:MySQL教程浏览:42评论:0


导读:mysql索引命中规则讲解_MySQL教程mysql的索引分为聚簇索引和非聚簇索引,mysql的表是聚集索引组织表。mysql的索引无论是聚集索引还是非聚集索引,都是B+树结构。...

mysql索引命中规则讲解_MySQL教程

mysql的索引分为聚簇索引和非聚簇索引,mysql的表是聚集索引组织表。mysql的索引无论是聚集索引还是非聚集索引,都是B+树结构。

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

举例说明如下:

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

(免费学习视频教程推荐:mysql视频教程)

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

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

或者如下写法:

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

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

语句一:

SET GLOBAL default_storage_engine = MyISAM;

语句二:

解决mysql写入中文乱码问题_MySQL教程

解决mysql写入中文乱码问题的方法是:1、首先检查数据库的设置;2、然后调整mysql参数配置,配置文件目录是【/etc/mysql/mysql.conf.d/】;3、最后重启mysql服务即可。

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全局变量与局部变量的详细内容,更多请关注ki4网其它相关文章!

mysql实现自增步长调整_MySQL教程

mysql实现自增步长调整的方法是:1、首先查看配置,例如【show variables like '%increment%'】;2、然后执行命令【set @@auto_increment_increment =1】。

标签:mysql全局变量局部变量


欢迎 发表评论: