多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > MySQL 系統(tǒng)變量(system variables)

MySQL 系統(tǒng)變量(system variables)

來源:程序員人生   發(fā)布時間:2014-10-08 08:12:21 閱讀次數(shù):2949次

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

 

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

   對于有關(guān)涉及到size的設(shè)置值,可以使用后綴K、M或G分別表示千字節(jié)、兆字節(jié)或gigabytes,不區(qū)分大小寫。
  
2、set設(shè)置系統(tǒng)變量的用法

--當(dāng)前的版本 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 | +-------------------------+------------------------------+ --獲取有關(guān)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 --查看全部系統(tǒng)變量 root@localhost[tempdb]> show variables; --該命令會輸出當(dāng)前系統(tǒng)全部系統(tǒng)變量 --查看sort_buffer mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 2097152 | +------------------+---------+ --在省略global與session關(guān)鍵字的情形下為session級別 mysql> set sort_buffer_size=1024*1024*4; --設(shè)置為4M mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 4194304 | +------------------+---------+ --恢復(fù)到缺省值 mysql> set sort_buffer_size=default; mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 2097152 | +------------------+---------+

3、全局與會話級別設(shè)置示例

--如何設(shè)置隔離級別 mysql> help isolation Name: 'ISOLATION' Description: Syntax: SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE } --下面我們通過演示隔離級別來設(shè)置全局與session級別變量 --查看當(dāng)前session級別的隔離方式 root@localhost[(none)]> show variables like '%isolation%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ --修改當(dāng)前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 --當(dāng)前sessioin級別繼承全局隔離級別為REPEATABLE-READ fred@localhost[(none)]> show variables like '%isolation%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ --在root會話中設(shè)置全局隔離級別為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會話中我可以看到全局的值已經(jīng)變?yōu)镾ERIALIZABLE 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級別如何設(shè)置,不會影響到當(dāng)前session級別的設(shè)置 --下面我們使用一個新用戶登錄來看看全局設(shè)置是否影響新會話 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數(shù)據(jù)中特定的表來獲得這些變量的值。 通過查詢數(shù)據(jù)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結(jié)果與查詢global_variables獲得的值相同,究其原因還在進(jìn)一步研究中。 root@localhost[information_schema]> select * from session_variables where variable_name='tx_isolation'; +---------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +---------------+----------------+ | TX_ISOLATION | SERIALIZABLE | --經(jīng)過重新設(shè)置一次session級別的tx_isolation后查詢正常。補(bǔ)充@20140928 +---------------+----------------+

5、總結(jié)
a、設(shè)置方法
    要想設(shè)置一個GLOBAL變量的值,使用下面的語法:
       mysql> SET GLOBAL sort_buffer_size=value;
       mysql> SET @@global.sort_buffer_size=value;
  
    要想設(shè)置一個SESSION變量的值,使用下面的語法:
       mysql> SET SESSION sort_buffer_size=value;
       mysql> SET @@session.sort_buffer_size=value;
       mysql> SET sort_buffer_size=value;
       LOCAL是SESSION的同義詞。
    如果設(shè)置變量時不指定GLOBAL、SESSION或者LOCAL,默認(rèn)使用SESSION。

b、檢索設(shè)置  
    要想檢索一個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、其他注意事項(xiàng)  
    當(dāng)你用SELECT @@var_name搜索一個變量時(也就是說,不指定global.、session.或者local.),
    MySQL返回SESSION值(如果存在),否則返回GLOBAL值。
    對于SHOW VARIABLES,如果不指定GLOBAL、SESSION或者LOCAL,MySQL返回SESSION值。

 

鵬城DBA總?cè)? src=

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 色久综合大榴莲 | 日本亚州视频在线八a | 欧美成人性色区 | 欧美 日韩 亚洲 中文字幕 一区 | 亚洲精品aⅴ中文字幕乱码 亚洲精品h | 91久久综合九色综合欧美98 | 国产成人久久综合漫画 | 综合网久久 | 精品国产欧美精品v | 国产一区二区三区在线观看视频 | 亚洲欧美综合精品成 | 日韩中文一区 | 久久精品免费i 国产 | julia一区福利视频在线观看 | 亚洲国产视频在线观看 | 最近的免费中文字幕视频 | 精品福利一区二区三区免费视频 | 97欧美在线看欧美视频免费 | 日本视频一区二区三区 | 国产欧美日韩另类va在线 | 亚洲 欧美综合小说区图片区 | 草的好爽 | 色综合天天综合网国产成人网 | 乌克兰鲜嫩xxxx | 福利国产片 | 国产三级在线观看播放 | 免费网站在线视频美女被 | 最近中文字幕在线播放 | 欧美jjzz | 欧美aa在线观看 | 91麻豆精品国产综合久久久 | 欧美成免费 | 国内精品久久久久激情影院 | 香蕉在线视频网站 | 欧美理伦| 国产精品亚洲精品观看不卡 | 国产精品免费大片一区二区 | 国产亚洲欧美在线播放网站 | 欧美一区二区三区视视频 | 国产一区二区三区四区五区六区 | 国产福利观看 |