Mysql系统变量与状态变量是什么意思

本篇内容主要讲解“MySQL系统变量与状态变量是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql系统变量与状态变量是什么意思”吧!

公司主营业务:成都网站设计、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出岭东免费做网站回馈大家。

系统变量

什么是系统变量

系统变量,就是Mysql针对自己程序运行的一些参数配置。例如通过系统变量我们可以指定诸如允许同时连入的客户端数量、客户端和服务器通信方式、表的默认存储引擎、查询缓存的大小等设置项。

系统变量的分类

  • GLOBAL:全局变量,影响服务器的整体操作。

  • SESSION:会话变量,影响某个客户端连接的操作。(注:SESSION有个别名叫LOCAL)

注:

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

  2. 并不是所有系统变量都具有GLOBAL和SESSION的作用范围。有一些系统变量只具有GLOBAL作用范围,比方说max_connections,表示服务器程序支持同时最多有多少个客户端程序进行连接。有一些系统变量只具有SESSION作用范围,比如insert_id,表示在对某个包含AUTO_INCREMENT列的表进行插入时,该列初始的值。有一些系统变量的值既具有GLOBAL作用范围,也具有SESSION作用范围,比如我们default_storage_engine(存储引擎),而且其实大部分的系统变量都是这样的。

如何查看系统变量

命令:SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式](不写GLOBAL或SESSION等同于SESSION);

如何设置系统变量

  • 通过启动选项设置,如命令:mysqld --default-storage-engine=MyISAM --max-connections=10,就是配置默认存储引擎为MyISAM,最大连接数为10。

注:在类Unix系统中,启动脚本有mysqld、mysqld_safe、mysql.server,其中mysqld代表直接启动mysql服务器程序,mysqld_safe会在此基础上启动一个监控进程,它会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志,mysql.server也可以启动Mysql,使用命令mysql.server start,效果跟mysqld_safe一样,mysqld_multi是用于单机多个mysql服务端进程的启动,停止脚本。

每个MySQL程序都有许多不同的选项。例如,使用mysql --help可以看到mysql程序支持的启动选项,mysqld_safe --help可以看到mysqld_safe程序支持的启动选项。查看mysqld支持的启动选项有些特别,需要使用mysqld --verbose --help。

  • 在my.cnf配置文件中添加启动选项

配置文件形如:

[server]
(具体的启动选项...)

[mysqld]
(具体的启动选项...)

[mysqld_safe]
(具体的启动选项...)

[client]
(具体的启动选项...)

[mysql]
(具体的启动选项...)

[mysqladmin]
(具体的启动选项...)

像这个配置文件里就定义了许多个组,组名分别是server、mysqld、mysqld_safe、client、mysql、mysqladmin。每个组下边可以定义若干个启动选项。

如在server组下面配置:

[server]
default-storage-engine=MyISAM
max-connections=10

表示默认存储引擎为MyISAM,最大连接数为10。

  • 服务器程序运行过程中设置

命令: SET [GLOBAL|SESSION] 系统变量名 = 值 或 SET [@@(GLOBAL|SESSION).]系统变量名 = 值(不写GLOBAL或SESSION等同于SESSION);

例如:

语句一:SET GLOBAL default_storage_engine = MyISAM;

语句二:SET @@GLOBAL.default_storage_engine = MyISAM;

注:如果某个客户端改变了某个系统变量在GLOBAL作用范围的值,并不会影响该系统变量在当前已经连接的客户端作用范围为SESSION的值,只会影响后续连入的客户端在作用范围为SESSION的值。

二、状态变量

什么是状态变量

MySQL服务器程序中维护了好多关于程序运行状态的变量,它们被称为状态变量,由于状态变量是用来显示服务器程序运行状况的,所以它们的值只能由服务器程序自己来设置,我们程序员是不能设置的。与系统变量类似,状态变量也有GLOBAL和SESSION两个作用范围的。比方说Threads_connected表示当前有多少客户端与服务器建立了连接,Handler_update表示已经更新了多少行记录。

查看状态变量命令

SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式](不写GLOBAL或SESSION等同于SESSION;

到此,相信大家对“Mysql系统变量与状态变量是什么意思”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

分享标题:Mysql系统变量与状态变量是什么意思
转载注明:https://www.cdcxhl.com/article26/gcdscg.html

成都网站建设公司_创新互联,为您提供品牌网站设计网站建设虚拟主机电子商务网站改版用户体验

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司