日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > MySQL 系統變量(system variables)

MySQL 系統變量(system variables)

來源:程序員人生   發布時間:2014-10-08 08:12:21 閱讀次數:2954次

    MySQL系統變量(system variables)實際上是一些系統參數,用于初始化或設定數據庫對系統資源的占用,文件存放位置等等。這些個系統變量可以分為全局以及會話級別層面來修改,有些也可以進行動態修改。本文主要介紹了系統變量的一些概念以及如何設置查看這些系統變量。

 

1、什么是系統變量
   系統變量實際上用于控制數據庫的一些行為和方式的參數。比如我們啟動數據庫的時候設定多大的內存,使用什么樣的隔離級別,日志文件的大小,存放位置等等一系列的東東。當然我們數據庫系統啟動后,有些系統變量(參數)也可以通過動態修改來及時調整數據庫。這個系統變量在Oracle里邊是通過pfile或者spfile來控制,稱之為參數,是一個意思。
   系統變量取值:都有默認值,可以在啟動時及啟動后修改。
   設置范圍:全局與回話級別,全局級別需要super權限,會話級別只影響自身會話。
   設置方法:啟動前可以通過配置文件以及啟動選項來修改,啟動后通過SET子句來設置。
   生效周期:全局變量全局可見,但只影響在更改后連接的從該全局變量初始化相應會話變量的客戶端。當前會話及已登錄的會話不受影響。

   對于有關涉及到size的設置值,可以使用后綴K、M或G分別表示千字節、兆字節或gigabytes,不區分大小寫。
  
2、set設置系統變量的用法

--當前的版本 mysql> show variables like 'version%'; +-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+------------------------------+ | version | 5.5.37 | | version_comment | MySQL Community Server (GPL) | | version_compile_machine | x86_64 | | version_compile_os | Linux | +-------------------------+------------------------------+ --獲取有關set的幫助 mysql> help set Name: 'SET' Description: Syntax: SET variable_assignment [, variable_assignment] ... variable_assignment: user_var_name = expr | [GLOBAL | SESSION] system_var_name = expr | [@@global. | @@session. | @@]system_var_name = expr --查看全部系統變量 root@localhost[tempdb]> show variables; --該命令會輸出當前系統全部系統變量 --查看sort_buffer mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 2097152 | +------------------+---------+ --在省略global與session關鍵字的情形下為session級別 mysql> set sort_buffer_size=1024*1024*4; --設置為4M mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 4194304 | +------------------+---------+ --恢復到缺省值 mysql> set sort_buffer_size=default; mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 2097152 | +------------------+---------+

3、全局與會話級別設置示例

--如何設置隔離級別 mysql> help isolation Name: 'ISOLATION' Description: Syntax: SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE } --下面我們通過演示隔離級別來設置全局與session級別變量 --查看當前session級別的隔離方式 root@localhost[(none)]> show variables like '%isolation%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ --修改當前session級別的隔離方式為READ-COMMITTED root@localhost[(none)]> set session transaction isolation level read committed; root@localhost[(none)]> show variables like '%isolation%'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | tx_isolation | READ-COMMITTED | +---------------+----------------+ --另外的一個session , 登錄用戶為fred --當前sessioin級別繼承全局隔離級別為REPEATABLE-READ fred@localhost[(none)]> show variables like '%isolation%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ --在root會話中設置全局隔離級別為serializable root@localhost[(none)]> set global transaction isolation level serializable; --注意,在root會話中 session級別還是為READ-COMMITTED root@localhost[(none)]> show variables like '%isolation%'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | tx_isolation | READ-COMMITTED | +---------------+----------------+ --在root會話中我可以看到全局的值已經變為SERIALIZABLE root@localhost[(none)]> show global variables like '%isolation%'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | tx_isolation | SERIALIZABLE | +---------------+--------------+ --在fred中全局的也變成了SERIALIZABLE fred@localhost[(none)]> show global variables like '%isolation%'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | tx_isolation | SERIALIZABLE | +---------------+--------------+ --從上面的演示來說,無論global級別如何設置,不會影響到當前session級別的設置 --下面我們使用一個新用戶登錄來看看全局設置是否影響新會話 robin@SZDB:~> mysql -urobin --如下查詢新會話的隔離級別等于全局的隔離級別 robin@localhost[(none)]> show variables like '%isolation%'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | tx_isolation | SERIALIZABLE | +---------------+--------------+

4、如何獲取變量值

除了通過前面演示的使用show global|session variables like 'vari_name'方式之外,我們可以通過查詢 information_schema數據中特定的表來獲得這些變量的值。 通過查詢數據information_schema的表global_variables root@localhost[information_schema]> select variable_value from global_variables where -> variable_name='tx_isolation'; +----------------+ | variable_value | +----------------+ | SERIALIZABLE | +----------------+ --Author: Leshami --Blog : http://blog.csdn.net/leshami root@localhost[information_schema]> select @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | SERIALIZABLE | +-----------------------+ root@localhost[information_schema]> select @@session.tx_isolation; +------------------------+ | @@session.tx_isolation | +------------------------+ | READ-COMMITTED | +------------------------+ --下面查詢session_variables結果與查詢global_variables獲得的值相同,究其原因還在進一步研究中。 root@localhost[information_schema]> select * from session_variables where variable_name='tx_isolation'; +---------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +---------------+----------------+ | TX_ISOLATION | SERIALIZABLE | --經過重新設置一次session級別的tx_isolation后查詢正常。補充@20140928 +---------------+----------------+

5、總結
a、設置方法
    要想設置一個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。

b、檢索設置  
    要想檢索一個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的同義詞。

c、其他注意事項  
    當你用SELECT @@var_name搜索一個變量時(也就是說,不指定global.、session.或者local.),
    MySQL返回SESSION值(如果存在),否則返回GLOBAL值。
    對于SHOW VARIABLES,如果不指定GLOBAL、SESSION或者LOCAL,MySQL返回SESSION值。

 

鵬城DBA總群

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美日一区 | 成年人视频在线免费观看 | 图片区自拍偷拍 | 日本女优一区 | 免费黄色电影在线观看 | 黄a视频 | 精品一区久久 | 99re99热 | 97在线免费观看视频 | 日韩精品99 | 日韩在线欧美 | 国产精品视频免费观看 | 国产欧美精品区一区二区三区 | 精品久久久免费 | 福利二区 | 天堂av中文在线 | 精品久久久久久久久久久院品网 | 日本在线不卡视频 | 免费人成网ww44kk44 | 2019超碰| 99亚洲| 天堂中文字幕在线 | 国产精品日韩欧美 | 天堂在线中文资源 | 91精品国产一区二区三区 | 国产精品久久久久久影视 | 欧美视频网 | 国产激情美女久久久久久吹潮 | 国产成人资源 | 久久久久国产精品一区三寸 | 欧美成人激情视频 | 欧美精品综合 | 国产中文字幕在线播放 | 国产精品视频久久久 | 成人欧美一区二区三区在线播放 | 久久电影国产免费久久电影 | 亚洲综合资源 | 国产欧美精品一区二区三区四区 | 国产精品久久久久久婷婷天堂 | aaaaaa免费视频 | 免费av在线播放 |