新聞中心
MySQL中的變量類型很多,下面為您介紹的是MySQL系統(tǒng)變量方面的知識,如果您對MySQL系統(tǒng)變量感興趣的話,不妨一看。

創(chuàng)新互聯(lián)建站技術團隊十載來致力于為客戶提供成都做網站、成都網站制作、高端網站設計、全網營銷推廣、搜索引擎SEO優(yōu)化等服務。經過多年發(fā)展,公司擁有經驗豐富的技術團隊,先后服務、推廣了近千家網站,包括各類中小企業(yè)、企事單位、高校等機構單位。
MySQL可以訪問許多系統(tǒng)和連接變量。當服務器運行時許多變量可以動態(tài)更改。這樣通常允許你修改服務器操作而不需要停止并重啟服務器。
mysqld服務器維護兩種MySQL系統(tǒng)變量。全局變量影響服務器整體操作。會話變量影響具體客戶端連接的操作。
當服務器啟動時,它將所有全局變量初始化為默認值。這些默認值可以在選項文件中或在命令行中指定的選項進行更改。服務器啟動后,通過連接服務器并執(zhí)行SET GLOBAL var_name語句,可以動態(tài)更改這些全局變量。要想更改全局變量,必須具有SUPER權限。
服務器還為每個連接的客戶端維護一系列會話變量。在連接時使用相應全局變量的當前值對客戶端的會話變量進行初始化。對于動態(tài)會話變量,客戶端可以通過SET SESSION var_name語句更改它們。設置會話變量不需要特殊權限,但客戶端只能更改自己的會話變量,而不能更改其它客戶端的會話變量。
對于全局變量的更改可以被訪問該全局變量的任何客戶端看見。然而,它只影響更改后連接的客戶的從該全局變量初始化的相應會話變量。不影響目前已經連接的客戶端的會話變量(即使客戶端執(zhí)行SET GLOBAL語句也不影響)。
可以使用幾種語法形式來設置或檢索全局或會話變量。下面的例子使用了sort_buffer_sizeas作為示例變量名。
要想設置一個GLOBAL變量的值,使用下面的語法:
mysql> SET GLOBAL sort_buffer_size=value;
mysql> SET @@global.sort_buffer_size=value;
要想設置一個SESSION變量的值,使用下面的語法:
mysql> SET SESSION sort_buffer_size=value;
mysql> SET @@session.sort_buffer_size=value;
mysql> SET sort_buffer_size=value;
LOCAL是SESSION的同義詞。
如果設置變量時不指定GLOBAL、SESSION或者LOCAL,默認使用SESSION。
要想檢索一個GLOBAL變量的值,使用下面的語法:
mysql> SELECT @@global.sort_buffer_size;
mysql> SHOW GLOBAL VARIABLES like 'sort_buffer_size';
要想檢索一個SESSION變量的值,使用下面的語法:
mysql> SELECT @@sort_buffer_size;
mysql> SELECT @@session.sort_buffer_size;
mysql> SHOW SESSION VARIABLES like 'sort_buffer_size';
這里,LOCAL也是SESSION的同義詞。
當你用SELECT @@var_name搜索一個變量時(也就是說,不指定global.、session.或者local.),MySQL返回SESSION值(如果存在),否則返回GLOBAL值。
對于SHOW VARIABLES,如果不指定GLOBAL、SESSION或者LOCAL,MySQL返回SESSION值。
當設置GLOBAL變量需要GLOBAL關鍵字但檢索時不需要它們的原因是防止將來出現問題。如果我們移除一個與某個GLOBAL變量具有相同名字的SESSION變量,具有SUPER權限的客戶可能會意外地更改GLOBAL變量而不是它自己的連接的SESSION變量。如果我們添加一個與某個GLOBAL變量具有相同名字的SESSION變量,想更改GLOBAL變量的客戶可能會發(fā)現只有自己的SESSION變量被更改了。
【編輯推薦】
帶您了解MySQL隨機字符串函數
深入研究MySQL結果字符串
MySQL截取字符串函數方法
MySQL字符串各列類型的區(qū)別
MySQL多個條件判斷示例
文章標題:MySQL系統(tǒng)變量的使用
URL地址:http://m.5511xx.com/article/dpdihej.html


咨詢
建站咨詢
