程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> mysql set and show system variables

mysql set and show system variables

編輯:MYSQL入門知識
 

mysql中的system variables的作用域有兩種:global與session。

set system variables的操作比較簡單:


SET GLOBAL sort_buffer_size=1000000;
SET SESSION sort_buffer_size=1000000;

show system variables 與set操作類似,也分為global與session,不多舉例。

Global與Session看起來是二種作用域,但是從system variables是否支持global與session的角度來講, 又可以分為三種情況:
1) 只支持global。
2) 同時支持global與session。
3) 只支持session。

最容易使人困惑的就是第二種情況了,經常可以遇到以下的情況:


SET GLOBAL xxxx=1;
然後
SHOW VARIABLES LIKE 'xxxx';
會發現xxxx的值沒有發生變化....

因為不指定global或者session的時候,session為默認值。

還有這種情況,更是危險:


SET GLOBAL xxxx=1;
在當前mysql shell或者其它已經打開的mysql shell中執行一些SQL語句發現貌似xxxx沒有生效。。。

在session創建的時候,會把各個variables的值從global復制到當前session,一旦session創建成功,set global就再也無法影響到它了。

所以, set和show的時候,一定要明確指定global或session,一定要用show復查一下,一定要慎重。

當然,我說了也是白說,等哪天你踩到了這個坑,就會深有感觸了。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved