MySQL資料庫中區分全域性變數和會話變數。

2021-10-10 08:25:59 字數 1194 閱讀 5236

當我們修改資料庫配置時,我們要知道,通過不通過的方式,修改資料庫配置,生命週期是不同的。有時候僅僅在一次會話中有效,有時候全域性生效,就算斷開連線,重啟服務,依然生效。

定義

寫在配置檔案中的就是全域性變數,也可以稱之為系統變數。

使用:

方法一:修改mysql配置檔案。

方法二:set @@global.變數名稱。如:set @@global.profiling_history_size = 25;

兩種方法,推薦使用方法一通過改變配置檔案修改,修改配置檔案後,重啟mysql伺服器。

之所以不推薦方法二,因為這種方式修改的全域性變數,在連線斷開後,再次連線確實還生效,和會話變數確實不一樣,但是有乙個問題,你重啟服務後,就失效了。方法一是永久的,方法二比會話變數強一點。

定義:

客戶端連線mysql時,相當於建立了會話,會話變數和全域性變數基本一致,在這次會話過程中,可以對全域性變數進行修改。

使用:

通過命令列進行修改,不需要重啟伺服器,比如開啟sql語句剖析功能。set profiling = 1;

有的人改變會話變數時,發現修改失敗,是你賬號許可權低的原因,超級管理員才可以修改,修改你自己筆記本root賬戶可以,公司的你改不成。

全域性變數修改配置檔案後,一直生效。

會話變數通過命令列修改後,僅在此次連線此次會話過程中有效。

定義:

使用者自定義變數,用於後邊的sql執行。在整個連線過程中有效。

使用者變數和區域性變數,沒有什麼許可權之說,都是自己的。

使用:

使用@自定義變數,這裡和全域性變數區分一下,全域性變數是@@。

定義

常用於儲存過程,用於交換資料。也可以這麼理解:儲存過程中的變數就是區域性變數,儲存過程一結束,變數就死亡。

區域性變數只在begin-end語句塊之間有效。

使用:

使用declare關鍵字定義。

Mysql全域性變數含義

5.常用運維命令 6.mysql鎖定狀態檢視相關命令 原文 show global variables show global variables like 方式一 set global 變數名 值 方式二 etc my.cnf mysqld 段中 變數名 值 需重啟mysql後生效 有些變數set...

Go中區域性全域性變數的區分

這是可能也許是容易混淆滴,先上1個例子 package main import fmt var nickname 大蝦 func main func show func change 上面會輸出 大蝦大蝦小蝦大蝦 我們稍微改動下 package main import fmt var nicknam...

Go中區域性全域性變數的區分

這是可能也許是容易混淆滴,先上1個例子 package main import fmt var nickname 大蝦 func main func show func change 上面會輸出 大蝦大蝦小蝦大蝦 我們稍微改動下 package main import fmt var nicknam...