MySQL系統變量

 在數據庫中,變量分爲系統變量(以‘@@’開頭)以及用戶自定義變量。系統變量分爲全局系統變量以及會話系統變量,靜態變量屬於特殊的全局系統變量。

 

全局系統變量(global)和會話系統變量(session),有時也把全局系統變量稱爲全局變量,把會話系統變稱爲local變量或者系統會話變量。Mysql服務成功啓動後,如果沒有mysql客戶機連接mysql服務器,那麼mysql服務器內存中的系統變量全部是全局系統變量。

每個mysql客戶機成功連接mysql服務器後,都會產生與之對應的會話。會話期間,沒有mysql服務實例會在mysql服務器內存中生成與該會話對應的會話系統變量,這些會話系統變量的初始值是全局系統變量值的複製。由於各會話在會話期間所做的操作不盡相同,爲了標記各個會話,會話系統變量又新增12個變量,例如,會話系統變量pseudo_thread_id用於標記當前會話的mysql連接ID

 

會話系統變量的特點在於,它僅僅用於定義當前會話的屬性,會話期間,當前會話對某個會話系統變量值得修改,不會影響其他會話同一個會話系統變量的值,即MySQL客戶機1的會話系統變量值不會被MySQL客戶機2看到或修改;MySQL客戶機1關閉或者MySQL客戶機1與服務器斷開連接後,與MySQL客戶機1相關的所有會話系統變量將自動釋放,以便於節省MySQL服務器的內存。

全局系統變量的特點在於,它是用於定義MySQL服務實例的屬性、特點,會話1對某個全局系統變量值得修改會導致會話2中同一個全局系統變量值得修改。

 

查看系統變量值“show global variables;”命令即可查看全局系統變量值;使用“show session variable;”即可查看與當前會話相關的所有會話系統變量以及所有的全局系統變量。

 

MySQL中,有一些系統變量僅僅是會話系統變量。例如,MySQL連接ID會話系統變量pseudo_thread_id,可以使用下面兩種方法查看該會話系統變量的值。

Show session variables like ‘pseudo_thread_id’;

Show  variables like ‘pseudo_thread_id’;

 

MySQL中,有一些系統變量即是全局系統變量,又是會話系統變量。例如,系統變量character_set_client既是全局系統變量,又是會話系統變量。

 

備註:作爲MySQL編碼規範,MySQL中的系統變量以兩個“@”開頭,其中“@@global”僅僅用於標記全局系統變量,“@@session”僅僅用於標記會話系統變量。“@@”首先標記會話系統變量,如果會話系統變量不存在,則標記全局系統變量。例如,查看InnoDB_data_file_path而言,可以使用“select  @@global.innodb_data_file_path;”。

設置系統變量的值

 方法一:修改MySQL源代碼,然後對MySQL配置文件,繼而修改MySQL系統變量的值(適用於MySQL高級用戶);

方法二:通過修改MySQL配置文件,繼而修改MySQL系統變量的值(需要重新啓動MySQL服務);

方法三:在MySQL服務運行期間,使用“set”命令重新設置系統變量的值,如果將一個系統值設置爲MySQL默認值,可以使用default關鍵字;例如,set @@global.innodb_file_per_table=default;注意set命令不會導致my.ini配置文件的內容發生變化。

如果重新設置全局系統變量值(例如InnoDB_file_per_table)的值,可以使用下面兩種方法(global關鍵字不能省略)

Set @@global.innodb_file_per_table=ON;

Set   global.innodb_file_per_table=ON;

重新設置會話系統變量(session)的值,有四種方法:

 Set @@session.pseudo_thread_id=5;

 Set  session pseudo_thread_id=5;

 Set @@pseudo_thread_id=5;

 Set pseudo_thread_id=5;

對於大部分的系統變量而言,可以在MySQL服務運行期間通過“set”命令重新設置其值。在MySQL中還有一些特殊的全局變量(例如log_in  tmpdir  version  datadir),在MySQL服務實例運行期間它們的值不能動態修改,不能使用set命令進行重新設置的,這種變量稱爲靜態變量,數據庫管理員可以使用方法一或方法二對靜態變量的值重新設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章