溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql系統(tǒng)變量與狀態(tài)變量是什么意思

發(fā)布時(shí)間:2021-06-26 14:14:34 來(lái)源:億速云 閱讀:289 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Mysql系統(tǒng)變量與狀態(tài)變量是什么意思”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Mysql系統(tǒng)變量與狀態(tài)變量是什么意思”吧!

系統(tǒng)變量

什么是系統(tǒng)變量

系統(tǒng)變量,就是Mysql針對(duì)自己程序運(yùn)行的一些參數(shù)配置。例如通過(guò)系統(tǒng)變量我們可以指定諸如允許同時(shí)連入的客戶端數(shù)量、客戶端和服務(wù)器通信方式、表的默認(rèn)存儲(chǔ)引擎、查詢緩存的大小等設(shè)置項(xiàng)。

系統(tǒng)變量的分類

  • GLOBAL:全局變量,影響服務(wù)器的整體操作。

  • SESSION:會(huì)話變量,影響某個(gè)客戶端連接的操作。(注:SESSION有個(gè)別名叫LOCAL)

注:

  1. 在服務(wù)器啟動(dòng)時(shí),會(huì)將每個(gè)全局變量初始化為其默認(rèn)值(可以通過(guò)命令行或選項(xiàng)文件中指定的選項(xiàng)更改這些默認(rèn)值)。然后服務(wù)器還為每個(gè)連接的客戶端維護(hù)一組會(huì)話變量,客戶端的會(huì)話變量在連接時(shí)使用相應(yīng)全局變量的當(dāng)前值初始化。

  2. 并不是所有系統(tǒng)變量都具有GLOBAL和SESSION的作用范圍。有一些系統(tǒng)變量只具有GLOBAL作用范圍,比方說(shuō)max_connections,表示服務(wù)器程序支持同時(shí)最多有多少個(gè)客戶端程序進(jìn)行連接。有一些系統(tǒng)變量只具有SESSION作用范圍,比如insert_id,表示在對(duì)某個(gè)包含AUTO_INCREMENT列的表進(jìn)行插入時(shí),該列初始的值。有一些系統(tǒng)變量的值既具有GLOBAL作用范圍,也具有SESSION作用范圍,比如我們default_storage_engine(存儲(chǔ)引擎),而且其實(shí)大部分的系統(tǒng)變量都是這樣的。

如何查看系統(tǒng)變量

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

如何設(shè)置系統(tǒng)變量

  • 通過(guò)啟動(dòng)選項(xiàng)設(shè)置,如命令:mysqld --default-storage-engine=MyISAM --max-connections=10,就是配置默認(rèn)存儲(chǔ)引擎為MyISAM,最大連接數(shù)為10。

注:在類Unix系統(tǒng)中,啟動(dòng)腳本有mysqld、mysqld_safe、mysql.server,其中mysqld代表直接啟動(dòng)mysql服務(wù)器程序,mysqld_safe會(huì)在此基礎(chǔ)上啟動(dòng)一個(gè)監(jiān)控進(jìn)程,它會(huì)將服務(wù)器程序的出錯(cuò)信息和其他診斷信息重定向到某個(gè)文件中,產(chǎn)生出錯(cuò)日志,mysql.server也可以啟動(dòng)Mysql,使用命令mysql.server start,效果跟mysqld_safe一樣,mysqld_multi是用于單機(jī)多個(gè)mysql服務(wù)端進(jìn)程的啟動(dòng),停止腳本。

每個(gè)MySQL程序都有許多不同的選項(xiàng)。例如,使用mysql --help可以看到mysql程序支持的啟動(dòng)選項(xiàng),mysqld_safe --help可以看到mysqld_safe程序支持的啟動(dòng)選項(xiàng)。查看mysqld支持的啟動(dòng)選項(xiàng)有些特別,需要使用mysqld --verbose --help。

  • 在my.cnf配置文件中添加啟動(dòng)選項(xiàng)

配置文件形如:

[server]
(具體的啟動(dòng)選項(xiàng)...)

[mysqld]
(具體的啟動(dòng)選項(xiàng)...)

[mysqld_safe]
(具體的啟動(dòng)選項(xiàng)...)

[client]
(具體的啟動(dòng)選項(xiàng)...)

[mysql]
(具體的啟動(dòng)選項(xiàng)...)

[mysqladmin]
(具體的啟動(dòng)選項(xiàng)...)

像這個(gè)配置文件里就定義了許多個(gè)組,組名分別是server、mysqld、mysqld_safe、client、mysql、mysqladmin。每個(gè)組下邊可以定義若干個(gè)啟動(dòng)選項(xiàng)。

如在server組下面配置:

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

表示默認(rèn)存儲(chǔ)引擎為MyISAM,最大連接數(shù)為10。

  • 服務(wù)器程序運(yùn)行過(guò)程中設(shè)置

命令: SET [GLOBAL|SESSION] 系統(tǒng)變量名 = 值 或 SET [@@(GLOBAL|SESSION).]系統(tǒng)變量名 = 值(不寫GLOBAL或SESSION等同于SESSION);

例如:

語(yǔ)句一:SET GLOBAL default_storage_engine = MyISAM;

語(yǔ)句二:SET @@GLOBAL.default_storage_engine = MyISAM;

注:如果某個(gè)客戶端改變了某個(gè)系統(tǒng)變量在GLOBAL作用范圍的值,并不會(huì)影響該系統(tǒng)變量在當(dāng)前已經(jīng)連接的客戶端作用范圍為SESSION的值,只會(huì)影響后續(xù)連入的客戶端在作用范圍為SESSION的值。

二、狀態(tài)變量

什么是狀態(tài)變量

MySQL服務(wù)器程序中維護(hù)了好多關(guān)于程序運(yùn)行狀態(tài)的變量,它們被稱為狀態(tài)變量,由于狀態(tài)變量是用來(lái)顯示服務(wù)器程序運(yùn)行狀況的,所以它們的值只能由服務(wù)器程序自己來(lái)設(shè)置,我們程序員是不能設(shè)置的。與系統(tǒng)變量類似,狀態(tài)變量也有GLOBAL和SESSION兩個(gè)作用范圍的。比方說(shuō)Threads_connected表示當(dāng)前有多少客戶端與服務(wù)器建立了連接,Handler_update表示已經(jīng)更新了多少行記錄。

查看狀態(tài)變量命令

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

到此,相信大家對(duì)“Mysql系統(tǒng)變量與狀態(tài)變量是什么意思”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI