MYSQL SHOW VARIABLES簡介
mysqld伺服器維護兩種變數。全域性變數影響伺服器的全域性操作。會話變數影響具體客戶端連線相關操作。
伺服器啟動時,將所有全域性變數初始化為預設值。可以在選項檔案或命令列中指定的選項來更改這些預設值。伺服器啟動後,透過連線伺服器並執行SET GLOBAL var_name語句可以更改動態全域性變數。要想更改全域性變數,必須具有SUPER許可權。
伺服器還為每個客戶端連線維護會話變數。連線時使用相應全域性變數的當前值對客戶端會話變數進行初始化。客戶可以透過SET SESSION var_name語句來更改動態會話變數。設定會話變數不需要特殊許可權,但客戶可以只更改自己的會話變數,而不更改其它客戶的會話變數。
任何訪問全域性變數的客戶端都可以看見對全域性變數的更改。但是,它隻影響在更改後連線的從該全域性變數初始化相應會話變數的客戶端。它不會影響已經連線上的客戶端的會話變數(甚至是執行SET GLOBAL語句的客戶端)。
當使用啟動選項設定變數時,變數值可以使用字尾K、M或G分別表示千位元組、兆位元組或gigabytes。例如,下面的命令啟動伺服器時的鍵值緩衝區大小為16 megabytes:
mysqld --key_buffer_size=16M
字尾的大小寫美關係;16M和16m是同樣的。
執行時,使用SET語句來設定系統變數。此時,不能使用字尾,但值可以採取下列表示式:
mysql> SET sort_buffer_size = 10 * 1024 * 1024;
要想顯式指定是否設定全域性或會話變數,使用GLOBAL或SESSION選項:
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;
兩個選項均沒有,則語句設定會話變數。
可以透過SHOW VARIABLES語句檢視系統變數及其值。
mysql> SHOW VARIABLES;
1. back_log
指定MySQL可能的連線數量。當MySQL主執行緒在很短的時間內得到非常多的連線請求,該引數就起作用,之後主執行緒花些時間(儘管很短)檢查連線並且啟動一個新執行緒。
back_log引數的值指出在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆疊中。如果系統在一個短時間內有很多連線,則需要增大該引數的值,該引數值指定到來的TCP/IP連線的偵聽佇列的大小。不同的作業系統在這個佇列大小上有它自己的限制。 試圖設定back_log高於你的作業系統的限制將是無效的。
當觀察MySQL程式列表,發現大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待連線程式時,就要加大 back_log 的值。back_log預設值為50。
2. basedir
MySQL主程式所在路徑,即:--basedir引數的值。
3. bdb_cache_size
分配給BDB型別資料表的快取索引和行排列的緩衝區大小,如果不使用DBD型別資料表,則應該在啟動MySQL時載入 --skip-bdb 引數以避免記憶體浪費。
4.bdb_log_buffer_size
分配給BDB型別資料表的快取索引和行排列的緩衝區大小,如果不使用DBD型別資料表,則應該將該引數值設定為0,或者在啟動MySQL時載入 --skip-bdb 引數以避免記憶體浪費。
5.bdb_home
參見 --bdb-home 選項。
6. bdb_max_lock
指定最大的鎖表程式數量(預設為10000),如果使用BDB型別資料表,則可以使用該引數。如果在執行大型事物處理或者查詢時發現 bdb: Lock table is out of available locks or Got error 12 from ... 錯誤,則應該加大該引數值。
7. bdb_logdir
指定使用BDB型別資料表提供服務時的日誌存放位置。即為 --bdb-logdir 的值。
8. bdb_shared_data
如果使用 --bdb-shared-data 選項則該引數值為On。
9. bdb_tmpdir
BDB型別資料表的臨時檔案目錄。即為 --bdb-tmpdir 的值。
10. binlog_cache_size
為binary log指定在查詢請求處理過程中SQL 查詢語句使用的快取大小。如果頻繁應用於大量、複雜的SQL表示式處理,則應該加大該引數值以獲得效能提升。
11. bulk_insert_buffer_size
指定 MyISAM 型別資料表表使用特殊的樹形結構的快取。使用整塊方式(bulk)能夠加快插入操作( INSERT ... SELECT, INSERT ... VALUES (...), (...), ..., 和 LOAD DATA INFILE) 的速度和效率。該引數限制每個執行緒使用的樹形結構快取大小,如果設定為0則禁用該加速快取功能。注意:該引數對應的快取操作只能使用者向非空資料表中執行插入操作!預設值為 8MB。
12. character_set
MySQL的預設字符集。
13. character_sets
MySQL所能提供支援的字符集。
14. concurrent_inserts
如果開啟該引數,MySQL則允許在執行 SELECT 操作的同時進行 INSERT 操作。如果要關閉該引數,可以在啟動 mysqld 時載入 --safe 選項,或者使用 --skip-new 選項。預設為On。
15. connect_timeout
指定MySQL服務等待應答一個連線報文的最大秒數,超出該時間,MySQL向客戶端返回 bad handshake。
16. datadir
指定路徑。即為 --datadir 選項的值。
17. delay_key_write
該引數只對 MyISAM 型別資料表有效。有如下的取值種類:
off: 如果在建表語句中使用 CREATE TABLE ... DELAYED_KEY_WRITES,則全部忽略
DELAYED_KEY_WRITES;
on: 如果在建表語句中使用 CREATE TABLE ... DELAYED_KEY_WRITES,則使用該選項(預設);
all: 所有開啟的資料表都將按照 DELAYED_KEY_WRITES 處理。
如果 DELAYED_KEY_WRITES 開啟,對於已經開啟的資料表而言,在每次索引更新時都不重新整理帶有
DELAYED_KEY_WRITES 選項的資料表的key buffer,除非該資料表關閉。該引數會大幅提升寫入鍵值的速
度。如果使用該引數,則應該檢查所有資料表:myisamchk --fast --force。
18.delayed_insert_limit
在插入delayed_insert_limit行後,INSERT DELAYED處理模組將檢查是否有未執行的SELECT語句。如果有,在繼續處理前執行允許這些語句。
19. delayed_insert_timeout
一個INSERT DELAYED執行緒應該在終止之前等待INSERT語句的時間。
20. delayed_queue_size
為處理INSERT DELAYED分配的佇列大小(以行為單位)。如果排隊滿了,任何進行INSERT DELAYED的客戶必須等待佇列空間釋放後才能繼續。
21. flush
在啟動MySQL時載入 --flush 引數開啟該功能。
22. flush_time
如果該設定為非0值,那麼每flush_time秒,所有開啟的表將被關,以釋放資源和sync到磁碟。注意:只建議在使用 Windows9x/Me 或者當前作業系統資源嚴重不足時才使用該引數!
23. ft_boolean_syntax
搜尋引擎維護員希望更改允許用於邏輯全文搜尋的運算子。這些則由變數 ft_boolean_syntax 控制。
24. ft_min_word_len
指定被索引的關鍵詞的最小長度。注意:在更改該引數值後,索引必須重建!
25. ft_max_word_len
指定被索引的關鍵詞的最大長度。注意:在更改該引數值後,索引必須重建!
26. ft_max_word_len_for_sort
指定在使用REPAIR, CREATE INDEX, or ALTER TABLE等方法進行快速全文索引重建過程中所能使用的關鍵詞的最大長度。超出該長度限制的關鍵詞將使用低速方式進行插入。加大該引數的值,MySQL將會建立更大的臨時檔案(這會減輕CPU負載,但效率將取決於磁碟I/O效率),並且在一個排序取記憶體放更少的鍵值。
27. ft_stopword_file
從 ft_stopword_file 變數指定的檔案中讀取列表。在修改了 stopword 列表後,必須重建 FULLTEXT 索引。
28. have_innodb
YES: MySQL支援InnoDB型別資料表; DISABLE: 使用 --skip-innodb 關閉對InnoDB型別資料表的支援。
29. have_bdb
YES: MySQL支援伯克利型別資料表; DISABLE: 使用 --skip-bdb 關閉對伯克利型別資料表的支援。
30. have_raid
YES: 使MySQL支援RAID功能。
31. have_openssl
YES: 使MySQL支援SSL協議。
32. init_file
指定一個包含SQL查詢語句的檔案,該檔案在MySQL啟動時將被載入,檔案中的SQL語句也會被執行。
33. interactive_timeout
伺服器在關上它前在一個互動連線上等待行動的秒數。一個互動的客戶被定義為對_real_connect()使用CLIENT_INTERACTIVE選項的客戶。也可見wait_timeout。
34. join_buffer_size
用於全部聯合(join)的緩衝區大小(不是用索引的聯結)。緩衝區對2個表間的每個全部聯結分配一次緩衝區,當增加索引不可能時,增加該值可得到一個更快的全部聯結。(通常得到快速聯結的最佳方法是增加索引。)
35. key_buffer_size
用於索引塊的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,將開始變慢慢。必須為OS檔案系統快取留下一些空間。為了在寫入多個行時得到更多的速度。
36. language
使用者輸出報錯資訊的語言。
37. large_file_support
開啟大檔案支援。
38. locked_in_memory
使用 --memlock 將mysqld鎖定在記憶體中。
39. log
記錄所有查詢操作。
40. log_update
開啟update log。
41. log_bin
開啟 binary log。
42. log_slave_updates
如果使用鏈狀同步或者多臺Slave之間進行同步則需要開啟此引數。
43. long_query_time
如果一個查詢所用時間超過該引數值,則該查詢操作將被記錄在Slow_queries中。
44. lower_case_table_names
1: MySQL總使用小寫字母進行SQL操作;
0: 關閉該功能。
注意:如果使用該引數,則應該在啟用前將所有資料錶轉換為小寫字母。
45. max_allowed_packet
一個查詢語句包的最大尺寸。訊息緩衝區被初始化為net_buffer_length位元組,但是可在需要時增加到max_allowed_packet個位元組。該值太小則會在處理大包時產生錯誤。如果使用大的BLOB列,必須增加該值。
46. net_buffer_length
通訊緩衝區在查詢期間被重置到該大小。通常不要改變該引數值,但是如果記憶體不足,可以將它設定為查詢期望的大小。(即,客戶發出的SQL語句期望的長度。如果語句超過這個長度,緩衝區自動地被擴大,直到max_allowed_packet個位元組。)
47. max_binlog_cache_size
指定binary log快取的最大容量,如果設定的過小,則在執行復雜查詢語句時MySQL會出錯。
48. max_binlog_size
指定binary log檔案的最大容量,預設為1GB。
49. max_connections
允許同時連線MySQL伺服器的客戶數量。如果超出該值,MySQL會返回Too many connections錯誤,但通常情況下,MySQL能夠自行解決。
50. max_connect_errors
對於同一主機,如果有超出該引數值個數的中斷錯誤連線,則該主機將被禁止連線。如需對該主機進行解禁,執行:FLUSH HOST;。
51. max_delayed_threads
不要啟動多於的這個數字的執行緒來處理INSERT DELAYED語句。如果你試圖在所有INSERT DELAYED執行緒在用後向一張新表插入資料,行將被插入,就像DELAYED屬性沒被指定那樣。
52. max_heap_table_size
記憶體表所能使用的最大容量。
53. max_join_size
如果要查詢多於max_join_size個記錄的聯合將返回一個錯誤。如果要執行沒有一個WHERE的語句並且耗費大量時間,且返回上百萬行的聯結,則需要加大該引數值。
54. max_sort_length
在排序BLOB或TEXT值時使用的位元組數(每個值僅頭max_sort_length個位元組被使用;其餘的被忽略)。
55. max_user_connections
指定來自同一使用者的最多連線數。設定為0則代表不限制。
56. max_tmp_tables
(該引數目前還沒有作用)。一個客戶能同時保持開啟的臨時表的最大數量。
57. max_write_lock_count
當出現max_write_lock_count個寫入鎖定數量後,開始允許一些被鎖定的讀操作開始執行。避免寫入鎖定過多,讀取操作處於長時間等待狀態。
58. myisam_recover_options
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-1127848/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL JDBC 出現多個 SHOW VARIABLES 語句。MySqlJDBC
- MySQL 5.5 SHOW PROFILE、SHOW PROFILES語句介紹MySql
- MySQL SHOW STATUS命令介紹MySql
- MySQL pt-show-grants用法介紹MySql
- MYSQL connector/.NET 預設的 show variables 引起的執行緒mutex鎖爭用MySql執行緒Mutex
- mysql show命令MySql
- mysql簡介MySql
- mysql的show processlistMySql
- mysql show processlist stateMySql
- 【Mysql】索引簡介MySql索引
- MySQL 索引簡介MySql索引
- MySQL索引簡介MySql索引
- MySQL簡介與啟動MySqlMySql
- MySQL 之 show processlist 神器MySql
- Mysql---show table statusMySql
- MySQL SHOW 語句大全MySql
- MySQL中的show命令MySql
- mysql show processlist 詳解MySql
- MySQL 檢視簡介MySql
- 【MySQL】SHOW WARNINGS和SHOW ERRORS的作用是什麼?MySqlError
- MySQL show status 命令詳解MySql
- MySQL show processlist故障處理MySql
- MySQL的show engine innodb statusMySql
- Mysql show processlist 排查問題MySql
- mysql show命令用法大全MySql
- 轉載:mysql的show processlistMySql
- mysql show processlist命令詳解MySql
- MySQL 索引 效能分析 show profilesMySql索引
- MySQL統計資訊簡介MySql
- MySQL 5.6 Table cache 簡介MySql
- MySQL 5.7 InnoDB引擎簡介MySql
- MySQL高階知識——Show ProfileMySql
- MySQL中show命令用法大全MySql
- MySQL show engine innodb status 詳解MySql
- MySQL Show命令的用法大全MySql
- MySQL 中 show full processlist 詳解MySql
- 【Mysql】show engine innodb status詳解MySql
- MYSQL中information_schema簡介MySqlORM