成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

MySQL5.6中的變量-創(chuàng)新互聯(lián)

這篇文章介紹的是MySQL  5.6中的變量,基本是我以前學(xué)習(xí)MySQL 5.6手冊(cè)時(shí)整理而來(lái)。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括和林格爾網(wǎng)站建設(shè)、和林格爾網(wǎng)站制作、和林格爾網(wǎng)頁(yè)制作以及和林格爾網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,和林格爾網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到和林格爾省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

基礎(chǔ)概念

MySQL中的變量可分為以下幾種:

1、 MySQL系統(tǒng)變量:該類(lèi)型變量反映了MySQL服務(wù)器是如何配置的。每一個(gè)系統(tǒng)變量都有一個(gè)默認(rèn)值。系統(tǒng)變量可以在MySQL配置文件中進(jìn)行設(shè)置,或使用MySQL啟動(dòng)選項(xiàng)進(jìn)行設(shè)置。大多數(shù)系統(tǒng)變量都可以在MySQL運(yùn)行時(shí)使用SET命令進(jìn)行動(dòng)態(tài)修改。

2、 MySQL狀態(tài)變量:該類(lèi)型變量反映了MySQL服務(wù)器的運(yùn)行狀態(tài)。

變量按作用范圍可分為:

1、 全局變量(global):對(duì)MySQL服務(wù)器全局生效。

2、 會(huì)話(huà)變量(session):僅對(duì)單個(gè)客戶(hù)端會(huì)話(huà)有影響。

有些MySQL選項(xiàng)只有全局變量或會(huì)話(huà)變量,而有些則同時(shí)有全局變量和會(huì)話(huà)變量。全局和會(huì)話(huà)變量的關(guān)聯(lián)是這樣的:

1、 當(dāng)MySQL服務(wù)啟動(dòng)時(shí),它會(huì)初始每一個(gè)全局變量為默認(rèn)值。這個(gè)默認(rèn)值可以在配置文件中或使用MySQL啟動(dòng)選項(xiàng)進(jìn)行修改。

2、 MySQL也會(huì)為每一個(gè)客戶(hù)端連接維護(hù)一個(gè)會(huì)話(huà)變量集。當(dāng)客戶(hù)端連接MySQL服務(wù)時(shí),它所有的會(huì)話(huà)變量都會(huì)初始化為相應(yīng)全局變量的當(dāng)前值。對(duì)于少數(shù)系統(tǒng)變量,它的會(huì)話(huà)值可能不會(huì)被初始化為相應(yīng)全局變量的值,具體可查詢(xún)MySQL官方手冊(cè)。

系統(tǒng)變量根據(jù)是否可動(dòng)態(tài)修改(dynamic),分為:

  • 動(dòng)態(tài)變量:可動(dòng)態(tài)修改變量的值。修改后無(wú)需重啟MySQL服務(wù)即可生效。

  • 非動(dòng)態(tài)變量:不可動(dòng)態(tài)修改變量的值。修改后需重啟MySQL服務(wù)才可生效。

完整的變量屬性列表可以在MySQL參考手冊(cè)中查詢(xún)得到。比如,可以了解到某一個(gè)變量是系統(tǒng)變量還是狀態(tài)變量,是全局變量還是還是變量還是兩種都有,是動(dòng)態(tài)變量還是非動(dòng)態(tài)變量。

查看變量的值

要查看MySQL的所有默認(rèn)系統(tǒng)變量值(忽略配置文件中的設(shè)置),使用命令:

[root@gw ~]# mysqld --no-defaults --verbose --help

要查看MySQL的所有默認(rèn)系統(tǒng)變量值(讀取配置文件中的設(shè)置后的),使用命令:

[root@gw ~]# mysqld --verbose --help

SHOW命令查看系統(tǒng)變量的值,語(yǔ)法格式為:

mysql> SHOW [GLOBAL | SESSION] VARIABLES [like_or_where]

  • 當(dāng)使用關(guān)鍵字GLOBAL時(shí),是查看所有全局變量的當(dāng)前值:

mysql> SHOW GLOBAL VARIABLES;

  • 當(dāng)不使用關(guān)鍵字或使用關(guān)鍵字SESSION時(shí),是查看所有會(huì)話(huà)變量的當(dāng)前值(有會(huì)話(huà)變量的則顯示當(dāng)前會(huì)話(huà)變量的值,沒(méi)有的則顯示全局變量的值):

mysql> SHOW VARIABLES;

mysql> SHOW SESSION VARIABLES;

  • 可以加上LIKE語(yǔ)句并使用通配符 % 或 _ 來(lái)匹配特定的變量。百分號(hào) % 匹配任意數(shù)量字符,下劃線(xiàn) _ 匹配單個(gè)字符。示例:

mysql> SHOW VARIABLES LIKE 'innodb_buffer%';

mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_buffer%';

另外,也可以使用 SELECT 語(yǔ)句來(lái)查看系統(tǒng)變量的值。比如:

mysql> SELECT @@global.sql_mode, @@session.sql_mode, @@sql_mode;

對(duì)于在表達(dá)式中使用 @@var_name 這種形式引用變量的值(而不是使用 @@global. 或 @@session.),MySQL會(huì)返回會(huì)話(huà)變量的值(如果存在),否則會(huì)返回全局變量的值。有 @@global. 前綴的是顯式指定查看全局變量的值,有 @@session. 前綴的是顯式指定查看會(huì)話(huà)變量的值。

SHOW命令查看狀態(tài)變量的值,語(yǔ)法格式為:

mysql> SHOW [GLOBAL | SESSION] STATUS [like_or_where]

  • 當(dāng)使用關(guān)鍵字GLOBAL時(shí),顯示的是全局狀態(tài)值。一個(gè)全局狀態(tài)變量可能表示的是服務(wù)器自身的一些狀態(tài)(比如,Aborted_connects),或者是所有連接會(huì)話(huà)的聚合狀態(tài)(比如,Bytes_received 和 Bytes_sent)。如果一個(gè)變量沒(méi)有全局狀態(tài)值,顯示的就是會(huì)話(huà)狀態(tài)值。

mysql> SHOW GLOBAL STATUS;

  • 當(dāng)不使用關(guān)鍵字或使用關(guān)鍵字SESSION時(shí),顯示的是會(huì)話(huà)狀態(tài)值。如果一個(gè)變量沒(méi)有會(huì)話(huà)值,顯示的就是全局狀態(tài)值。LOCAL關(guān)鍵字含義與SESSION相同。

mysql> SHOW STATUS;

mysql> SHOW SESSION STATUS;

mysql> SHOW LOCAL STATUS;

使用FLUSH STATUS命令可以將一些狀態(tài)變量的值重置為0:

mysql> FLUSH STATUS;

設(shè)置變量的值

要修改系統(tǒng)變量的值,有幾種方式:在MySQL配置文件中修改,使用MySQL啟動(dòng)選項(xiàng)修改,或在MySQL啟動(dòng)后使用SET命令動(dòng)態(tài)修改。每一個(gè)變量具體支持哪幾種方式,見(jiàn)MySQL官方手冊(cè)中的列表。

在設(shè)置系統(tǒng)變量的值時(shí),變量值為容量大小的,默認(rèn)單位為字節(jié)(bytes),或者也可以顯式指定單位為K、M、G(大小寫(xiě)均可,分別表示1024、10242、10243字節(jié))。變量值為文件名的,可以使用絕對(duì)路徑名,但如果使用相對(duì)路徑,那么路徑是相對(duì)于MySQL數(shù)據(jù)目錄。

動(dòng)態(tài)變量的值可以在MySQL運(yùn)行時(shí)使用SET命令進(jìn)行修改:

  • 要指明所修改的是一個(gè)全局變量,使用 GLOBAL 關(guān)鍵字或加上 @@global. 修飾符。示例:

SET GLOBAL max_connections = 1000;

SET @@global.max_connections = 1000;

  • 要指明所修改的是一個(gè)會(huì)話(huà)變量,使用 SESSION 關(guān)鍵字或加上 @@session.@@ 修飾符。一個(gè)客戶(hù)端只能修改它自己的會(huì)話(huà)變量,而不能修改其它客戶(hù)端的。示例:

SET SESSION sql_mode = 'TRADITIONAL';

SET @@session.sql_mode = 'TRADITIONAL';

SET @@sql_mode = 'TRADITIONAL';

  • LOCAL@@local. 與 SESSION 和 @@session. 同義,作用相同。

  • 如果未提供修飾符,SET命令修改的就是會(huì)話(huà)變量。但如果那個(gè)變量沒(méi)有會(huì)話(huà)值,就會(huì)報(bào)錯(cuò):

mysql> SET max_connections = 1000;

ERROR 1229 (HY000): Variable 'max_connections' is a

GLOBAL variable and should be set with SET GLOBAL

  • SET命令可以同時(shí)設(shè)置多個(gè)變量的值,使用逗號(hào)分隔開(kāi)來(lái)。示例:

SET @x = 1, SESSION sql_mode = '';

同時(shí)設(shè)置多個(gè)變量時(shí),最接近的GLOBAL或SESSION修飾符會(huì)應(yīng)用于后面沒(méi)有修飾符的變量。示例:

SET GLOBAL sort_buffer_size = 1000000, SESSION sort_buffer_size = 1000000;

SET @@global.sort_buffer_size = 1000000, @@local.sort_buffer_size = 1000000;

SET GLOBAL max_connections = 1000, sort_buffer_size = 1000000;

如果SET命令中的某一個(gè)變量設(shè)置失敗了,那么整個(gè)語(yǔ)句都會(huì)失敗,其它變量也就不會(huì)被修改。

  • SET命令修改會(huì)話(huà)變量的值后,修改對(duì)當(dāng)前會(huì)話(huà)是即時(shí)生效的,直到你將它改為另一個(gè)值或當(dāng)前會(huì)話(huà)終止。修改不會(huì)對(duì)其它會(huì)話(huà)造成影響。修改全局變量的值后,修改也是即時(shí)生效的,新的值會(huì)被記住并應(yīng)用于新的會(huì)話(huà),直到你將它改為另一個(gè)值或MySQL服務(wù)關(guān)閉。全局變量的值只會(huì)影響相應(yīng)的會(huì)話(huà)變量的值,也因此只會(huì)對(duì)新建會(huì)話(huà)造成影響,不會(huì)對(duì)現(xiàn)有會(huì)話(huà),甚至不會(huì)對(duì)執(zhí)行SET GLOBAL語(yǔ)句的當(dāng)前會(huì)話(huà)造成影響。為了讓全局變量的值永久生效,你還應(yīng)該在MySQL配置文件中設(shè)置相應(yīng)選項(xiàng)的值。

  • 要設(shè)置一個(gè)全局變量值為MySQL的默認(rèn)值,或設(shè)置一個(gè)會(huì)話(huà)變量值為當(dāng)前對(duì)應(yīng)的全局變量的值,可以將變量的值設(shè)為關(guān)鍵字DEFAULT。比如,下面兩個(gè)語(yǔ)句是相同的,都是將會(huì)話(huà)變量max_join_size的值設(shè)置為當(dāng)前相應(yīng)的全局變量的值:

SET @@session.max_join_size=DEFAULT;

SET @@session.max_join_size=@@global.max_join_size;

當(dāng)然,并不是所有系統(tǒng)變量的值都可以被設(shè)置為DEFAULT,那樣會(huì)報(bào)錯(cuò)。不允許將值DEFAULT分配給用戶(hù)自定義變量、存儲(chǔ)過(guò)程或函數(shù)參數(shù)、或存儲(chǔ)程序的本地變量。

  • 要在表達(dá)式中引用系統(tǒng)變量的值,使用其中一個(gè) @@ 修飾符。比如,要在 SELECT 語(yǔ)句中獲取變量的值,可以:

SELECT @@global.sql_mode, @@session.sql_mode, @@sql_mode;

對(duì)于在表達(dá)式中使用 @@var_name 這種形式引用變量的值(而不是使用 @@global. 或 @@session.),MySQL會(huì)返回會(huì)話(huà)變量的值(如果存在),否則會(huì)返回全局變量的值。這與語(yǔ)句 SET @@var_name = expr 是不相同的,那個(gè)語(yǔ)句總是設(shè)置的會(huì)話(huà)變量的值。

  • MySQL啟動(dòng)選項(xiàng)中,變量值可以顯式地指定單位K、M或G(不區(qū)分大小寫(xiě)),但使用SET命令時(shí)不行;另一方面,MySQL啟動(dòng)選項(xiàng)中,變量值不能通過(guò)表達(dá)式計(jì)算活動(dòng),而SET命令中則可以。比如,下面第一個(gè)是可以的,第二個(gè)則不行:

[root@gw ~]# mysql --max_allowed_packet=16M                //啟動(dòng)選項(xiàng)中,這種用法可以

[root@gw ~]# mysql --max_allowed_packet=16*1024*1024           //啟動(dòng)選項(xiàng)中,這種用法不行

相對(duì)地,下面第二個(gè)是可以的,第一個(gè)則不行:

mysql> SET GLOBAL max_allowed_packet=16M;                 //SET命令中,這種用法不行

mysql> SET GLOBAL max_allowed_packet=16*1024*1024;            //SET命令中,這種用法可以

自定義變量

SET命令還可以用于設(shè)置自定義變量。在變量名前加上 @ 修飾符,就是表示設(shè)置自定義變量。變量名稱(chēng)可以由字母、數(shù)字、"."、"_"和"$"組成。當(dāng)然,在以字符串或者標(biāo)識(shí)符引用時(shí)也可以包含其他字符(例如:@'my-var',@"my-var",或者@`my-var`)。

mysql> SET @x = 1;

自定義變量是會(huì)話(huà)級(jí)別的變量,作用域僅限于當(dāng)前會(huì)話(huà)。當(dāng)前會(huì)話(huà)終止時(shí),其所有的會(huì)話(huà)變量將會(huì)被釋放,包括自定義變量。使用SELECT命令可以查看自定義變量的值:

mysql> SELECT @x;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:MySQL5.6中的變量-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://jinyejixie.com/article18/dciedp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站改版、網(wǎng)站設(shè)計(jì)微信小程序、做網(wǎng)站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
江门市| 曲沃县| 越西县| 调兵山市| 苏尼特左旗| 弋阳县| 朝阳区| 邯郸市| 偏关县| 娱乐| 塔河县| 呼伦贝尔市| 永川市| 涡阳县| 白沙| 宁化县| 满洲里市| 迁安市| 明星| 大丰市| 武义县| 洞口县| 清涧县| 乾安县| 冀州市| 河北省| 红桥区| 海兴县| 禄劝| 台南市| 麻栗坡县| 苍溪县| 民县| 肥乡县| 剑川县| 珠海市| 枝江市| 丽水市| 麟游县| 重庆市| 庆云县|