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; //設置會話變量
mysql> SET sort_buffer_size = 10 * 1024 * 1024; //設置會話變量
5.3.3.1節,“動態系統變量”中列出了可以在運行時設置的變量。
如果你想用SET語句限制系統變量可設的最大值,可以在服務器啟動時通過--maximum-var_name形式的選項來指定。例如,要想防止query_cache_size的值運行時超過32MB,使用選項--maximum-query_cache_size=32M。
此處描述了大多數系統變量。沒有版本的變量在所有MySQL 5.1 發布中適用。關於其使用歷史信息,請參見MySQL 5.0參考指南和MySQL 4.1參考指南。InnoDB系統變量列於 15.2.4節,“InnoDB啟動選項”。
若沒有另行規定,緩沖區大小、長度和堆棧大小的單位均為字節。
關於這些變量的調節信息參見7.5.2節,“調節服務器參數”。
1. auto_increment_increment
auto_increment_increment和auto_increment_offset用於主服務器-主服務器(master-to-master)復制,並可以用來控制AUTO_INCREMENT列的操作。兩個變量均可以設置為全局或局部變量,並且假定每個值都可以為1到65,535之間的整數值。將其中一個變量設置為0會使該變量為1。如果試圖將這些變量設置為大於65,535或小於0的值,則會將該值設置為65,535。如果向將auto_increment_increment或auto_increment_offset設置為非整數值,則會給出錯誤,並且變量的實際值在這種情況下保持不變。
這兩個變量影響AUTO_INCREMENT列的方式:
auto_increment_increment控制列中的值的增量值。例如:
mysql> SHOW VARIABLES LIKE ‘auto_inc%‘;
mysql> CREATE TABLE autoinc1 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.04 sec)
mysql> SET @auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE ‘auto_inc%‘;
mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT col FROM autoinc1;
(注明如何使用SHOW VARIABLES來獲取這些變量的當前值)。
auto_increment_offset確定AUTO_INCREMENT列值的起點。假定在與前面的例子的相同的會話中執行下面的命令:
mysql> SET @auto_increment_offset=5;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE ‘auto_inc%‘;
mysql> CREATE TABLE autoinc2 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.06 sec)
mysql> INSERT INTO autoinc2 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT col FROM autoinc2;
如果auto_increment_offset的值大於auto_increment_increment的值,則auto_increment_offset的值被忽略。
如果其中一個或兩個變量被更改了,然后更改插入到包含AUTO_INCREMENT列的表中的新行,結果可能看上去有問題,由於計算AUTO_INCREMENT系列值時沒有考慮列內已經存在的值,並且插入的下一個值是列內最小的值,大於AUTO_INCREMENT列內已有的最大值。換句話說,數值的計算方法為:
auto_increment_offset+ N * auto_increment_increment
其中N為系列內的正整數值[1,2,3,...]。例如:
mysql> SHOW VARIABLES LIKE ‘auto_inc%‘;
mysql> SELECT col FROM autoinc1;
mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT col FROM autoinc1;
auto_increment_increment和auto_increment_offset所示的值可以生成系列5 + N * 10,即,[5,15,25,35,45,...]。在INSERT前col 列內最大的值為31,AUTO_INCREMENT數列的下一個值為35,因此col中插入的值從該點開始,結果如SELECT查詢所示。
一定要記住不可能將這兩個變量的結果限制到一個表中,因此不會替代其它數據庫管理系統提供的序列;這些變量控制MySQL服務器上all表AUTO_INCREMENT列的所有行為。如果某個變量設為全局變量,則只有通過局部設置將全局值更改和覆蓋后或mysqld重啟后其作用方可改變;如果局部設置,則新值影響所有表的AUTO_INCREMENT列,在這個會話期間當前用戶在這些表中插入了新行,除非在會話期間更改了這些值。
auto_increment_increment的 默認值為1。參見6.12節,“多服務器復制中的Auto-Increment”。
· auto_increment_offset 該變量的默認值為1。詳見auto_increment_increment的描述。
2. back_log
MySQL有的主要連接請求的數量。當主MySQL線程在短時間內得到許多連接請求時發揮作用。主線程需要花一些時間(盡管很少)來檢查連接並啟動一個新線程。back_log值說明MySQL臨時停止響應新請求前在短時間內可以堆起多少請求。如果你需要在短時間內允許大量連接,可以增加該數值。
換句話說,該值為“進”TCP/IP連接幀聽隊列的大小。操作系統有該隊列自己的限制值。本手冊中Unix listen()系統調用頁應有更詳細的信息。該變量最大值請查閱OS文檔。企圖將back_log設置為高於你的操作系統限值是徒勞無益的。
Sql>show variables like “back%”;
3. basedir
MySQL安裝基准目錄。可以用--basedir選項設置該變量。
Sql>show variables like “basedir%”;
4. bdb_cache_size(未找到)
為BDB表緩存索引和行分配的緩沖區的大小。如果你不使用BDB表,你應用--skip-bdb啟動mysqld以便不浪費該緩存。
5. bdb_home(未找到)
BDB表基准目錄。應與datadir變量的值相同。
6. bdb_log_buffer_size(未找到)
為BDB表緩存索引和行分配的緩沖區的大小。如果你不使用BDB表,你應將該值設置為0或用--skip-bdb啟動mysqld以便不浪費該緩存。
7. bdb_logdir(未找到)
BDB存儲引擎寫它日志文件的目錄。可以用--bdb-logdir選項設置該變量。
8. bdb_max_lock(未找到)
在BDB表下可以激活的最大鎖數(默認為10,000)。如果當你執行長事務或當mysqld必須檢查許多行來計算查詢時出現下面的錯誤,你應增加該值:
bdb: Lock table is out of available locks
Got error 12 from ...
9. bdb_shared_data(未找到)
如果你正使用--bdb-shared-data應為ON。
10. bdb_tmpdir(未找到)
--bdb-tmpdir選項的值。
11. binlog_cache_size
在事務過程中容納二進制日志SQL語句的緩存大小。二進制日志緩存是服務器支持事務存儲引擎並且服務器啟用了二進制日志(--log-bin選項)的前提下為每個客戶端分配的內存。如果你經常使用大的,多語句事務,你可以增加該值以獲得更有的性能。Binlog_cache_use和Binlog_cache_disk_use狀態變量可以用來調整該變量的大小。參見5.11.3節,“二進制日志”。
Sql>show variables like “binlog%”;
12. bulk_insert_buffer_size
MyISAM 使用專用樹狀緩存來使INSERT ... SELECT、INSERT ... VALUES (...)、(...)、 ...和LOAD DATA INFILE的大塊插入更快。該變量用每線程的字節數限制緩存樹的大小。將它設置為0禁用優化。注釋:只有向非空表添加數據時才使用該緩存。 默認值是8MB。
Sql>show variables like “bulk%”;
13. character_set_client
來自客戶端的語句的字符集。
Sql>show variables like “character_set%”;
14. character_set_connection
用於沒有字符集導入符的文字和數字-字符串轉換。
Sql>show variables like “character_set%”;
15. character_set_database
默認數據庫使用的字符集。當默認數據庫更改時,服務器則設置該變量。如果沒有默認數據庫,變量的值同character_set_server。
Sql>show variables like “character_set%”;
16. character_set_results
用於向客戶端返回查詢結果的字符集。
Sql>show variables like “character_set%”;
17. character_set_ server
服務器的默認字符集。
Sql>show variables like “character_set%”;
18. character_set_system
服務器用來保存識別符的字符集。該值一定是utf8。
19. character_sets_dir
字符集安裝目錄。
Sql>show variables like “character_set%”;
20. collation_connection
連接字符集的校對規則。
Sql>show variables like “collation%”;
21. collation_database
默認數據庫使用的校對規則。當默認數據庫改變時服務器則設置該變量。如果沒有默認數據庫,變量的值同collation_server。
Sql>show variables like “collation%”;
22. collation_server
服務器的默認校對規則。
Sql>show variables like “collation%”;
23. completion_type(未弄懂)
事務結束類型:
如果該值為0(默認),COMMIT和ROLLBACK不受影響。
如果該值為1,COMMIT和ROLLBACK分別等同於COMMIT AND CHAIN和ROLLBACK AND CHAIN。(新事務用剛剛結束的事務相同的間隔等級立即啟動)。
如果該值為2,COMMIT和ROLLBACK分別等同於COMM它RELEASE和ROLLBACK RELEASE。(事務終止后,服務器斷開)。
Sql>show variables like “completion%”; //顯示的值是no_chain;而不是上面的0、1、2?
24. concurrent_insert(未弄懂)
如果為ON(默認值),MySQL允許INSERT和SELECT語句在中間沒有空數據塊的MyISAM表中並行運行。你可以用--safe或--skip-new啟動mysqld關閉該選項。
該變量為整數,有3個值:
值 |
描述 |
0 |
關 |
1 |
(默認)在沒有空數據塊的MyISAM表中啟用並行插入 |
2 |
為所有MyISAM表啟用並行插入。如果表有空記錄或正被另一線程使用,新行將插入到表的最后。如果表未使用,MySQL將進行普通讀鎖定並將新行插入空記錄。 |
Sql>show variables like “concurrent%”; //顯示的值是auto;而不是上面的0、1、2?
25. connect_timeout
mysqld服務器用Bad handshake響應前等待連接包的秒數。
Sql>show variables like “connect%”;
26. datadir
MySQL數據目錄。可以用--datadir選項設置該變量。
Sql>show variables like “datadir%”;
27. date_format
該變量未使用。
28. datetime_format
該變量未使用。
29. default_week_format
WEEK() 函數使用的默認模式。
Sql>show variables like “default%”;
30. delay_key_write
該選項只適用MyISAM表。它具有下述值可以影響CREATE TABLE語句使用的DELAY_KEY_WRITE表選項的處理。
值 |
描述 |
OFF |
DELAY_KEY_WRITE被忽略。 |
ON |
MySQL在CREATE TABLE中用DELAY_KEY_WRITE選項。這是 默認值。 |
ALL |
用啟用DELAY_KEY_WRITE選項創建表的相同方法對所有新打開表的進行處理。 |
如果啟用了DELAY_KEY_WRITE,說明使用該項的表的鍵緩沖區在每次更新索引時不被清空,只有關閉表時才清空。遮掩蓋可以大大加快鍵的寫操作,但如果你使用該特性,你應用--myisam-recover選項啟動服務器,為所有MyISAM表添加自動檢查(例如,--myisam-recover=BACKUP,FORCE)。參見5.3.1節,“mysqld命令行選項”和15.1.1節,“MyISAM啟動選項”。
請注意--external-locking不為使用延遲鍵寫入的表提供索引破壞保護。
Sql>show variables like “delay_key%”;
31. delayed_insert_limit
插入delayed_insert_limit 延遲行后,INSERT DELAYED 處理器線程檢查是否有掛起的SELECT語句。如果有,在繼續插入延遲的行之前,允許它們先執行。
Sql>show variables like “delayed_insert%”;
32. delayed_insert_timeout
INSERT DELAYED處理器線程終止前應等待INSERT語句的時間。
Sql>show variables like “delayed_insert%”;
33. delayed_queue_size
這是各個表中處理INSERT DELAYED語句時隊列中行的數量限制。如果隊列滿了,執行INSERT DELAYED語句的客戶端應等待直到隊列內再有空間。
Sql>show variables like “delayed_insert%”;
34. div_precision_increment
該變量說明用/操作符執行除操作的結果可增加的精確度的位數。 默認值是4。最小和最大值分別為0和30。下面的示例說明了增加 默認值的結果。
mysql> SELECT 1/7;
mysql> SET div_precision_increment = 12;
該變量適用於NDB。默認值為0(OFF):如果你執行類似查詢SELECT * FROM t WHERE mycol = 42,其中mycol為沒有索引的列,當滿了的表掃描每個NDB節點時,執行該查詢。每個節點使用WHERE條件將每一行發送給MySQL服務器。如果engine_condition_pushdown被設置為1(ON),該條件“pushed down”給存儲引擎並發送給NDB節點。每個節點都執行掃描,並只向MySQL服務器發送回匹配條件的行。
Sql>show variables like “div%”;
35. expire_logs_days
二進制日志自動刪除的天數。默認值為0,表示“沒有自動刪除”。啟動時和二進制日志循環時可能刪除。
Sql>show variables like “expire_logs%”;
36. flush
如果用--flush選項啟動mysqld該值為ON。
Sql>show variables like “flush%”;
37. flush_time
如果設為非零值,每隔flush_time秒則關閉所有表以釋放硬盤資源並同步未清空的數據。我們建議只在Windows 9x或Me,或有最小資源的系統中使用該選項。
Sql>show variables like “flush%”;
38. ft_boolean_syntax
使用IN BOOLEAN MODE執行的布爾全文搜索支持的操作符系列。參見12.7.1節,“布爾全文搜索”。
默認變量值為 ‘+ -><()~*:""&|‘。更改這些值的規則是:
操作符函數由其在字符串內的位置決定。
替換值必須是14個字符。
每個字符必須為ASCII碼非文字數字字符。
第1個或第2個字符必須為空格。
除非語句在第11個字符和第12個字符處引用了操作符,否則不允許復制。這兩個字符可以不相同,但這是唯一可能的兩個。
位置10、13和14(默認設置為‘:’、‘&’和‘|’)保留用於將來擴展。
Sql>show variables like “ft_boolean%”;
39. ft_max_word_len
FULLTEXT索引中所包含的字的最大長度。
注釋:更改該變量后必須重建FULLTEXT索引。應使用REPAIR TABLE tbl_name QUICK。
Sql>show variables like “ft_max%”;
40. ft_min_word_len
FULLTEXT索引中所包含的字的最小長度。
注釋:更改該變量后必須重建FULLTEXT索引。應使用REPAIR TABLE tbl_name QUICK。
Sql>show variables like “ft_min%”;
41. ft_query_expansion_limit
使用WITH QUERY EXPANSION進行全文搜索的最大匹配數。
Sql>show variables like “ft_query%”;
42. ft_stopword_file
用於讀取全文搜索的停止字清單的文件。該文件中的所有字都會用到;注釋不重要。默認情況下,使用內嵌式停止字清單(如myisam/ft_static.c文件中所定義)。將該變量設置為空字符串(‘‘)則禁用停止字過濾。
注釋:更改該變量或停止字文件的內容后必須重建FULLTEXT索引。應使用REPAIR TABLE tbl_name QUICK。
Sql>show variables like “ft_stop%”;
43. group_concat_max_len
允許的GROUP_CONCAT()函數結果的最大長度。
Sql>show variables like “group%”;
44. have_archive(未弄懂)
如果mysqld支持ARCHIVE表則為YES,否則為NO。
45. have_bdb(未弄懂)
如果mysqld支持BDB表則為YES。如果使用--skip-bdb則為DISABLED。
46. have_blackhole_engine(未弄懂)
如果mysqld支持BLACKHOLE表則為YES,否則為NO。
47. have_compress
是否zlib壓縮庫適合該服務器。如果不適合,不能使用COMPRESS()和UNCOMPRESS()函數。
Sql>show variables like “have%”;
48. have_crypt
是否crypt()系統調用適合該服務器。如果不適合,不能使用CRYPT()函數。
Sql>show variables like “have%”;
49. have_csv(未弄懂)
如果mysqld支持ARCHIVE表則為YES,否則為NO。
50. · have_example_engine(未弄懂)
51. have_csv(未弄懂)
如果mysqld支持EXAMPLE表則為YES,否則為NO。
52. have_federated_engine(未弄懂)
如果mysqld支持FEDERATED表則為YES,否則為NO。
53. have_geometry
是否服務器支持空間數據類型。
Sql>show variables like “have%”;
54. have_innodb(未弄懂)
如果mysqld支持InnoDB表則為YES。如果使用--skip-innodb則為DISABLED。
55. have_isam(未弄懂)
在MySQL 5.1中,只是為了向后兼容顯示該值,並且總是NO,因為不再支持ISAM表。
56. have_ndbcluster(未找到)
如果mysqld支持NDB CLUSTER表則為YES。如果使用了--skip-ndbcluster則為DISABLED。
57. have_partition_engine(未找到)
如果mysqld支持分區則為YES。在MySQL 5.1.1中加入。
58. have_openssl
如果mysqld支持客戶端/服務器協議的SSL(加密)則為YES。
Sql>show variables like “have%”;
59. have_query_cache
如果mysqld支持查詢緩存則為YES。
Sql>show variables like “have%”;
60. have_raid(未找到)
如果mysqld支持RAID選項則為YES。
61. have_rtree_keys
RTREE索引是否可用。(用於MyISAM表的空間索引)。
Sql>show variables like “have%”;
62. have_symlink
是否啟用符號鏈接支持。在Unix中需要用於支持DATA DIRECTORY和INDEX DIRECTORY表選項。
Sql>show variables like “have%”;
63. init_connect
服務器為每個連接的客戶端執行的字符串。字符串由一個或多個SQL語句組成。要想指定多個語句,用分號間隔開。例如,每個客戶端開始時默認啟用autocommit模式。沒有全局服務器變量可以規定autocommit默認情況下應禁用,但可以用init_connect來獲得相同的效果:
SET GLOBAL init_connect=‘SET AUTOCOMMIT=0‘;
還可以在命令行或選項文件中設置該變量。要想使用選項文件設置變量,應包括下述行:
[mysqld]
init_connect=‘SET AUTOCOMMIT=0‘
請注意init_connect的內容並不為擁有SUPER權限的用戶執行;實際是內容設置錯誤(包含錯誤查詢,例如語法錯誤),這樣使所有連接失敗。不為SUPER用戶執行,使SUPER用戶可以打開連接並固定init_connect。
Sql>show variables like “init%”;
64. init_file
啟動服務器時用--init-file選項指定的文件名。文件中包含服務器啟動時要執行的SQL語句。每個語句必須在同一行中並且不能包括注釋。
Sql>show variables like “init%”;
65. init_slave
該變量類似init_connect,但是每次SQL線程啟動時從服務器應執行該字符串。該字符串的格式與init_connect變量相同。
Sql>show variables like “init%”;
66. innodb_xxx
InnoDB系統變量列入15.2.4節,“InnoDB啟動選項”。
Sql>show variables like “innodb%”; //122個參數
67. interactive_timeout
服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。又見wait_timeout。
Sql>show variables like “inter%”;
68. join_buffer_size
用於完全聯接的緩沖區的大小(當不使用索引的時候使用聯接操作)。一般情況獲得快速聯接的最好方法是添加索引。當增加索引時不可能通過增加join_buffer_size值來獲得快速完全聯接。將為兩個表之間的每個完全聯接分配聯接緩沖區。對於多個表之間不使用索引的復雜聯接,需要多聯接緩沖區。
Sql>show variables like “join%”;
69. key_buffer_size
Sql>show variables like “key_buffer%”;
MyISAM表的索引塊分配了緩沖區,由所有線程共享。key_buffer_size是索引塊緩沖區的大小。鍵值緩沖區即為鍵值緩存。
key_buffer_size的最大允許設定值為4GB。有效最大值可以更小,取決於可用物理RAM和操作系統或硬件平台強加的每個進程的RAM限制。
增加該值,達到你可以提供的更好的索引處理(所有讀和多個寫操作)。通常為主要運行MySQL的機器內存的25%。但是,如果你將該值設得過大(例如,大於總內存的50%),系統將轉換為頁並變得極慢。MySQL依賴操作系統來執行數據讀取時的文件系統緩存,因此你必須為文件系統緩存留一些空間。
關聯參數:“LOCK TABLES和UNLOCK TABLES語法”。
Key_reads /Key_read_requests的比值 //一般應小於0.01
Key_writes/Key_write_requests的比值 //通常接近1
1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
同時寫多行時要想速度更快,應使用LOCK TABLES。參見13.4.5節,“LOCK TABLES和UNLOCK TABLES語法”。
你可以通過執行SHOW STATUS語句並檢查Key_read_requests、Key_reads、Key_write_requests和Key_writes狀態變量來檢查鍵值緩沖區的性能。參見13.5.4節,“SHOW語法”。
Key_reads/Key_read_requests比例一般應小於0.01。如果你使用更新和刪除,Key_writes/Key_write_requests比例通常接近1,但如果你更新時會同時影響到多行或如果你正使用DELAY_KEY_WRITE表選項,可能小得多。
用key_buffer_size結合Key_blocks_unused狀態變量和緩沖區塊大小,可以確定使用的鍵值緩沖區的比例。從key_cache_block_size服務器變量可以獲得緩沖區塊大小。使用的緩沖區的比例為:
1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
該值為約數,因為鍵值緩沖區的部分空間被分配用作內部管理結構。
可以創建多個MyISAM鍵值緩存。4GB限制可以適合每個緩存,而不是一個組。參見7.4.6節,“MyISAM鍵高速緩沖”。
70. key_cache_age_threshold
該值控制將緩沖區從鍵值緩存熱子鏈(sub-chain)降級到溫子鏈(sub-chain)。如果值更低,則降級更快。最小值為100。 默認值是300。參見7.4.6節,“MyISAM鍵高速緩沖”。
Sql>show variables like “key_cache%”;
71. key_cache_block_size
鍵值緩存內塊的字節大小。默認值是1024。參見7.4.6節,“MyISAM鍵高速緩沖”。
Sql>show variables like “key_cache%”;
72. key_cache_division_limit
鍵值緩存緩沖區鏈熱子鏈和溫子鏈的划分點。該值為緩沖區鏈用於溫子鏈的百分比。允許的值的范圍為1到100。 默認值是100。參見7.4.6節,“MyISAM鍵高速緩沖”。
Sql>show variables like “key_cache%”;
73. language(未找到)
錯誤消息所用語言。
74. large_file_support
mysqld編譯時是否使用了大文件支持選項。
Sql>show variables like “large%”;
75. large_pages
說明是否啟用了大頁面支持。
Sql>show variables like “large%”;
76. license
服務器的許可類型。
Sql>show variables like “license%”;
77. local_infile
是否LOCAL支持LOAD DATA INFILE語句。
Sql>show variables like “local%”;
78. locked_in_memory
是否用–memlock將mysqld鎖在內存中。
Sql>show variables like “locked%”;
79. log(未找到)
是否啟用將所有查詢記錄到常規查詢日志中。參見5.11.2節,“通用查詢日志”。
80. log_bin
是否啟用二進制日志。參見5.11.3節,“二進制日志”。
Sql>show variables like “log_bin%”;
81. log_bin_trust_routine_creators(未找到)
若啟用了二進制記錄,則該變量適用。它控制是否可以信任保存的程序的作者不會創建向二進制日志寫入不安全事件的程序。如果設置為0(默認情況),不允許用戶創建或修改保存的程序,除非他們不僅擁有CREATE ROUTINE或ALTER ROUTINE權限還擁有SUPER權限。
設置為0還強制限制,程序必須用DETERMINISTIC 特征或用READS SQL DATA或NO SQL特征聲明。如果變量設置為1,MySQL不對保存程序的創建強加限制。
參見20.4節,“存儲子程序和觸發程序的二進制日志功能”。
82. log_error
錯誤日志的位置。
Sql>show variables like “log_%”;
83. log_slave_updates
是否從服務器從主服務器收到的更新應記入從服務器自己的二進制日志。要想生效,必須啟用從服務器的二進制記錄。參見6.8節,“復制啟動選項”。
Sql>show variables like “log_%”;
84. log_slow_queries(未找到)
是否記錄慢查詢。用long_query_time變量的值來確定“慢查詢”。參見5.11.4節,“慢速查詢日志”。
85. log_warnings
是否產生其它警告消息。默認情況下啟用。放棄的連接不記入錯誤日志,除非值大於1。
Sql>show variables like “log_%”;
86. long_query_time
如果查詢時間超過該值,則增加Slow_queries狀態變量。如果你正使用--log-slow-queries選項,則查詢記入慢查詢日志文件。用實際時間測量該值,而不是CPU時間,因此低於輕負載系統閾值的查詢可能超過重負載系統的閾值。參見5.11.4節,“慢速查詢日志”。
Sql>show variables like “long_%”;
87. low_priority_updates
如果設置為1,所有INSERT、UPDATE、DELETE和LOCK TABLE WRITE語句將等待直到受影響的表沒有掛起的SELECT或LOCK TABLE READ。該變量以前叫做sql_low_priority_updates。
Sql>show variables like “low_%”;
88. lower_case_file_system
該變量說明是否數據目錄所在的文件系統對文件名的大小寫敏感。ON說明對文件名的大小寫不敏感,OFF表示敏感。
Sql>show variables like “lower_%”;
89. lower_case_table_names
如果設置為1,表名用小寫保存到硬盤上,並且表名比較時不對大小寫敏感。如果設置為2,按照指定的保存表名,但按照小寫來比較。該選項還適合數據庫名和表的別名。參見9.2.2節,“識別符大小寫敏感性”。
如果你正使用InnoDB表,你應在所有平台上將該變量設置為1,強制將名字轉換為小寫。
如果運行MySQL的系統對文件名的大小寫不敏感(例如Windows或Mac OS X),你不應將該變量設置為0。如果啟動時沒有設置該變量,並且數據目錄所在文件系統對文件名的大小寫不敏感,MySQL自動將lower_case_table_names設置為2。
Sql>show variables like “lower_%”;
90. max_allowed_packet
包或任何生成的/中間字符串的最大大小。
包消息緩沖區初始化為net_buffer_length字節,但需要時可以增長到max_allowed_packet字節。該值默認很小,以捕獲大的(可能是錯誤的)數據包。
如果你使用大的BLOB 列或長字符串,你必須增加該值。應同你想要使用的最大的BLOB一樣大。max_allowed_packet的協議限制為1GB。
Sql>show variables like “max_allowed%”;
91. max_binlog_cache_size
如果多語句事務需要更大的內存,你會得到錯誤Multi-statement transaction required more than ‘max_binlog_cache_size‘ bytes of storage。
Sql>show variables like “max_bin%”;
92. max_binlog_size
如果二進制日志寫入的內容超出給定值,日志就會發生滾動。你不能將該變量設置為大於1GB或小於4096字節。 默認值是1GB。
請注意如果你正使用事務:事務以一個塊寫入二進制日志,因此不不能被幾個二進制日志拆分。因此,如果你有大的事務,二進制日志可能會大於max_binlog_size。
如果max_relay_log_size為0, max_binlog_size的值也適用於中繼日志。
Sql>show variables like “max_bin%”;
93. max_connect_errors
如果中斷的與主機的連接超過該數目,該主機則阻塞后面的連接。你可以用 FLUSH HOSTS語句解鎖鎖定的主機。
Sql>show variables like “max_connect%”;
94. · max_connections
允許的並行客戶端連接數目。增大該值則增加mysqld 需要的文件描述符的數量。關於文件描述符限制的注釋參見7.4.9節,“MySQL如何打開和關閉表”。還可參見A.2.6節,“連接數過多”。
Sql>show variables like “max_connect%”;
95. max_delayed_threads
不要啟動大於該數目的線程來處理INSERT DELAYED語句。如果所有INSERT DELAYED線程已經在使用,你想在新表中插入數據,行 插入時好像未指定DELAYED屬性。如果你將該值設置為0,MySQL不會創建線程來處理DELAYED行;其結果是完全禁用了DELAYED。
Sql>show variables like “max_del%”;
96. max_error_count
保存由SHOW ERRORS或SHOW WARNINGS顯示的錯誤、警告和注解的最大數目。
Sql>show variables like “max_error%”;
97. max_heap_table_size
該變量設置MEMORY (HEAP)表可以增長到的最大空間大小。該變量用來計算MEMORY表的MAX_ROWS值。在已有的MEMORY表上設置該變量沒有效果,除非用CREATE TABLE或TRUNCATE TABLE等語句重新創建表。
Sql>show variables like “max_heap%”;
98. max_insert_delayed_threads
該變量為max_delayed_threads的同義詞。
Sql>show variables like “max_insert%”;
99. max_join_size
不允許可能需要檢查多於max_join_size行(為單個表語句)或行組合(為多個表語句)或可能執行大於max_join_size次硬盤查詢的SELECT語句。通過設置該值,你可以捕獲鍵使用不正確並可能花很長時間的SELECT語句。如果用戶想要執行沒有WHERE子句的花較長時間或返回數百萬行的聯接,則設置它。
將該變量設置為DEFAULT之外的值,將SQL_BIG_SELECTS的值重設為0。如果你重新設置SQL_BIG_SELECTS值,max_join_size變量被忽略。
如果查詢結果位於查詢緩存中,則不檢查結果大小,因為前面已經計算了結果,不會要求服務器將它發送給客戶端。
該變量以前叫做sql_max_join_size。
Sql>show variables like “max_join%”;
100. max_length_for_sort_data
確定使用的filesort算法的索引值大小的限值。參見7.2.12節,“MySQL如何優化ORDER BY”。
Sql>show variables like “max_length%”;
101. max_relay_log_size
如果復制從服務器寫入中繼日志時超出給定值,則滾動中繼日志。通過該變量你可以對中繼日志和二進制日志設置不同的限制。但是,將該變量設置為0,MySQL可以對二進制日志和中繼日志使用max_binlog_size。max_relay_log_size必須設置在4096字節和1GB(包括)之間,或為0。 默認值是0。參見6.3節,“復制實施細節”。
Sql>show variables like “max_relay%”;
102. max_seeks_for_key
限制根據鍵值尋找行時的最大搜索數。MySQL優化器假定當用掃描鍵在表內搜索匹配的行時,不需要超過該數量的鍵值搜索,而不管鍵的實際基數是什么(參見13.5.4.11節,“SHOW INDEX語法”)。將該值設置為較低的值(100?),你可以強制MySQL選擇鍵值而不選擇表掃描。
Sql>show variables like “max_seeks%”;
103. max_sort_length
當排序BLOB或TEXT值時使用的字節數。只使用每個值的前max_sort_length字節;其它的被忽略。
Sql>show variables like “max_sort%”;
104. max_tmp_tables
客戶端可以同時打開的臨時表的最大數。(但該選項還未生效)。
Sql>show variables like “max_tmp%”;
105. max_user_connections
任何給定的MySQL賬戶允許的最大同時連接數。0值表示“沒有限制”。
該變量具有全局范圍和(只讀)會話范圍。會話變量的的值與全局變量的值相同,除非當前賬戶具有非零MAX_USER_CONNECTIONS資源限制。在這種情況下,會話值反應了賬戶限制。
Sql>show variables like “max_user%”;
106. max_write_lock_count
超過寫鎖定限制后,允許部分讀鎖定。
Sql>show variables like “max_write%”;
107. myisam_data_pointer_size
默認指針大小,單位是字節,當未指定MAX_ROWS選項時,CREATE TABLE使用該變量創建MyISAM表。該變量不能小於2或大於7。 默認值是6。參見A.2.11節,“表已滿”。
Sql>show variables like “myisam%”;
108. (DEPRECATED) myisam_max_extra_sort_file_size
注釋:MySQL 5.1不支持該變量。詳細信息參見MySQL 5.0 參考手冊。
109. myisam_max_sort_file_size
重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE過程中)時,允許MySQL使用的臨時文件的最大空間大小。如果文件的大小超過該值,則使用鍵值緩存創建索引,要慢得多。該值的單位為字節。
Sql>show variables like “myisam%”;
110. myisam_recover_options(未弄懂)
--myisam-recover選項的值。
Sql>show variables like “myisam%”;
111. myisam_repair_threads
如果該值大於1,在Repair by sorting過程中並行創建MyISAM表索引(每個索引在自己的線程內)。 默認值是1。注釋:多線程維護仍然是alpha 編碼。
Sql>show variables like “myisam%”;
112. myisam_sort_buffer_size
當在REPAIR TABLE或用CREATE INDEX創建索引或ALTER TABLE過程中排序 MyISAM索引分配的緩沖區。
Sql>show variables like “myisam%”;
113. myisam_stats_method
當為MyISAM表搜集關於索引值分發的統計信息時服務器如何處理NULL值。該變量有兩個可能的值,nulls_equal和nulls_unequal。對於nulls_equal,認為所有NULL索引值時相等的,並形成一個數值組,其空間大小等於NULL值的數。對於nulls_unequal,NULL值認為是不相等的,每個NULL形成一個數值組,大小為1。
方法用於生成表統計信息,影響優化器如何選擇索引來執行查詢,詳細描述見7.4.7節,“MyISAM索引統計集合”。
Sql>show variables like “myisam%”;
114. multi_read_range(未找到)
指定范圍選擇過程中發送到存儲引擎的范圍的最大值。默認值是256。向引擎發送多個范圍可以大大改進某些選擇的性能,特別是對NDBCLUSTER。該引擎需要向所有節點發送范圍請求,同時發送許多請求可以大大降低通信成本。
115. multi_range_count
Sql>show variables like “multi%”;
116. named_pipe(未找到)
(只適用Windows)說明服務器是否支持命名管道連接。
117. net_buffer_length
在查詢之間將通信緩沖區重設為該值。一般情況不應改變,但如果內存很小,可以將它設置為期望的客戶端發送的SQL語句的長度。如果語句超出該長度,緩沖區自動擴大,直到max_allowed_packet字節。
Sql>show variables like “net_buffer%”;
118. net_read_timeout
中斷讀前等待連接的其它數據的秒數。當服務器從客戶端讀數時,net_read_timeout指控制何時中斷的超時值。當服務器向客戶端寫時,net_write_timeout指控制何時中斷的超時值。又見slave_net_timeout。
Sql>show variables like “net_read%”;
119. net_retry_count
如果某個通信端口的讀操作中斷了,在放棄前重試多次。在FreeBSD中該值應設得很高,因為內部中斷將發送至所有線程。
Sql>show variables like “net_retry%”;
120. net_write_timeout
中斷寫之前等待塊寫入連接的秒數。又見net_read_timeout。
Sql>show variables like “net_write%”;
121. new
在MySQL 4.0中使用該變量來打開4.1中的一些行為,並用於向后兼容性。在MySQL 5.1中,它的值一直是OFF.
Sql>show variables like “new %”;
122. old_passwords
是否服務器應為MySQL用戶賬戶使用pre-4.1-style密碼。參見A.2.3節,“客戶端不支持鑒定協議”。
Sql>show variables like “old %”;
123. one_shot(未找到)
這不是一個變量,但當設置變量是可以使用它。其描述見13.5.3節,“SET語法”。
124. open_files_limit
操作系統允許mysqld打開的文件的數量。這是系統允許的實際值,可能與你在啟動選項中賦給mysqld的值不同。若在系統中MySQL不能更改打開的文件的數量,則該值為0。
Sql>show variables like “open %”;
125. optimizer_prune_level
在查詢優化從優化器搜索空間裁減低希望局部計划中使用的控制方法。0值禁用該方法,以便優化器進行窮舉搜索。值為1使優化器根據中間方案中得出的行數來裁減方案。
Sql>show variables like “optimizer_prune %”;
126. optimizer_search_depth
查詢優化器進行的搜索的最大深度。如果值大於查詢中的關系數則查詢方案比較佳,但生成查詢執行方案需要的時間更長。值大於查詢中的關系數則返回的執行方案更快,但方案遠沒有優化。如果設置為0, 系統自動選擇合理的值。如果設置為查詢中使用的表的最大數加2,優化器轉換為MySQL 5.0.0(和以前的版本)中使用的算法並搜索。
Sql>show variables like “optimizer_search%”;
127. pid_file
進程ID (PID)文件的路徑名。可以用--pid-file選項設置該變量。
Sql>show variables like “pid%”;
128. plugin_dir
插件目錄的路徑。在MySQL 5.1.2中加入了該變量。
Sql>show variables like “plugin%”;
129. port
服務器幀聽TCP/IP連接所用端口。可以用--port選項設置該變量。
Sql>show variables like “port%”;
130. preload_buffer_size
重載索引時分配的緩沖區大小。
Sql>show variables like “preload%”;
131. protocol_version
MySQL服務器使用的客戶端/服務器協議的版本。
Sql>show variables like “prorocol%”;
132. query_alloc_block_size
為查詢分析和執行過程中創建的對象分配的內存塊大小。如果內存分段過程中遇到問題,將該變量增加一位會有幫助。
Sql>show variables like “query_alloc%”;
133. query_cache_limit
不要緩存大於該值的結果。默認值是1048576(1MB)。
Sql>show variables like “query_cache%”;
134. query_cache_min_res_unit
查詢緩存分配的最小塊的大小(字節)。 默認值是4096(4KB)。關於該變量的調節信息參見5.13.3節,“查詢高速緩沖配置”。
Sql>show variables like “query_cache%”;
135. query_cache_size
為緩存查詢結果分配的內存的數量。默認值是0,即禁用查詢緩存。請注意即使query_cache_type設置為0也將分配此數量的內存。詳細信息參見5.13.3節,“查詢高速緩沖配置”。
Sql>show variables like “query_cache%”;
136. query_cache_type
設置查詢緩存類型。設置GLOBAL值可以設置后面的所有客戶端連接的類型。客戶端可以設置SESSION值以影響他們自己對查詢緩存的使用。下面的表顯示了可能的值:
選項 |
描述 |
0或OFF |
不要緩存或查詢結果。請注意這樣不會取消分配的查詢緩存區。要想取消,你應將query_cache_size設置為0。 |
1或ON |
緩存除了以SELECT SQL_NO_CACHE開頭的所有查詢結果。 |
2或DEMAND |
只緩存以SELECT SQL_NO_CACHE開頭的查詢結果。 |
該變量默認設為ON。
Sql>show variables like “query_cache%”;
137. query_cache_wlock_invalidate
一般情況,當客戶端對MyISAM表進行WRITE鎖定時,如果查詢結果位於查詢緩存中,則其它客戶端未被鎖定,可以對該表進行查詢。將該變量設置為1,則可以對表進行WRITE鎖定,使查詢緩存內所有對該表進行的查詢變得非法。這樣當鎖定生效時,可以強制其它試圖訪問表的客戶端來等待。
Sql>show variables like “query_cache%”;
138. query_prealloc_size
用於查詢分析和執行的固定緩沖區的大小。在查詢之間該緩沖區不釋放。如果你執行復雜查詢,分配更大的query_prealloc_size值可以幫助提高性能,因為它可以降低查詢過程中服務器分配內存的需求。
Sql>show variables like “query_pre%”;
139. range_alloc_block_size
范圍優化時分配的塊的大小。
Sql>show variables like “range%”;
140. read_buffer_size
每個線程連續掃描時為掃描的每個表分配的緩沖區的大小(字節)。如果進行多次連續掃描,可能需要增加該值, 默認值為131072。
Sql>show variables like “read%”;
141. read_only
當變量對復制從服務器設置為ON時,從服務器不允許更新,除非通過從服務器的線程或用戶擁有SUPER權限。可以確保從服務器不接受客戶端的更新命令。
Sql>show variables like “read%”;
142. read_rnd_buffer_size
當排序后按排序后的順序讀取行時,則通過該緩沖區讀取行,避免搜索硬盤。將該變量設置為較大的值可以大大改進ORDER BY的性能。但是,這是為每個客戶端分配的緩沖區,因此你不應將全局變量設置為較大的值。相反,只為需要運行大查詢的客戶端更改會話變量。
Sql>show variables like “read%”;
143. relay_log_purge
當不再需要中繼日志時禁用或啟用自動清空中繼日志。默認值是1(啟用)。
Sql>show variables like “relay%”;
144. secure_auth
如果用--secure-auth選項啟動了MySQL服務器,它將阻塞有舊格式(4.1之前)密碼的所有賬戶所發起的連接。在這種情況下,該變量的值為ON,否則為OFF。
如果你想要防止使用舊格式的密碼(致使網絡通信不安全),你應啟用該選項。
如果啟用該選項並且授權表為pre-4.1格式,服務器啟動失敗並且會出現錯誤。參見A.2.3節,“客戶端不支持鑒定協議”。
當用於客戶端選項時,如果服務器需要該客戶端賬戶的舊格式的密碼,則客戶端拒絕連接該服務器。
Sql>show variables like “secure%”;
145. server_id
--server-id選項的值。用於主復制服務器和從復制服務器。
Sql>show variables like “server%”;
146. shared_memory(未找到)
(只用於Windows)服務器是否允許共享內存連接。
147. shared_memory_base_name
(只用於Windows)說明服務器是否允許共享內存連接,並為共享內存設置識別符。當在單台機器上運行多個MySQL實例時很有用。
148. skip_external_locking
如果mysqld使用外部鎖定,該值為OFF。
Sql>show variables like “skip_e%”;
149. skip_networking
如果服務器只允許本地(非TCP/IP)連接,該值為ON。在Unix中,本地連接使用Unix套接字文件。在Windows中,本地連接使用命名管道或共享內存。在NetWare中,只支持TCP/IP連接,因此不要將該變量設置為ON。
Sql>show variables like “skip_n%”;
150. skip_show_database
防止不具有SHOW DATABASES權限的人們使用SHOW DATABASES語句。如果你擔心用戶能夠看見屬於其它用戶的數據庫,這樣設置可以提高安全性。其效果取決於SHOW DATABASES權限:如果變量值為ON,只允許具有SHOW DATABASES權限的人們使用SHOW DATABASES 語句,並且該語句將顯示所有數據庫名。如果值為OFF,允許所有用戶執行SHOW DATABASES,但只顯示用戶具有SHOW DATABASES或其它權限的數據庫的名稱。
Sql>show variables like “skip_s%”;
151. slave_compressed_protocol
如果主、從服務器均支持,確定是否使用從/主壓縮協議。
Sql>show variables like “slave_c%”;
152. slave_load_tmpdir
從服務器為復制LOAD DATA INFILE語句創建臨時文件的目錄名。
Sql>show variables like “slave_l%”;
153. slave_net_timeout
放棄讀操作前等待主/從連接的更多數據的等待秒數。
Sql>show variables like “slave_n%”;
154. slave_skip_errors
從服務器應跳過(忽視)的復制錯誤。
Sql>show variables like “slave_s%”;
155. slave_transaction_retries
如果由於ofInnoDB死鎖或超過InnoDB的innodb_lock_wait_timeout或NDBCLUSTER的TransactionDeadlockDetectionTimeout或TransactionInactiveTimeout,復制從服務器SQL線程未能執行事務,在提示錯誤並停止前它自動重復slave_transaction_retries次。 默認值是10。
Sql>show variables like “slave_t%”;
156. slow_launch_time
如果創建線程的時間超過該秒數,服務器增加Slow_launch_threads狀態變量。
Sql>show variables like “slow_l%”;
157. socket
Unix平台:用於本地客戶端連接的套接字文件。默認為/var/lib/mysql/mysql.sock。
Windows:用於本地客戶端連接的命名管道名。默認為mysql。
Sql>show variables like “socket%”;
158. sort_buffer_size
每個排序線程分配的緩沖區的大小。增加該值可以加快ORDER BY或GROUP BY操作。參見A.4.4節,“MySQL將臨時文件儲存在哪里”。
Sql>show variables like “sort%”;
159. sql_mode
當前的服務器SQL模式,可以動態設置。參見5.3.2節,“SQL服務器模式”。
Sql>show variables like “sql_mode%”;
160. sql_slave_skip_counter
從服務器應跳過的來自主服務器的事件數。
Sql>show variables like “sql_slave%”;
161. storage_engine
該變量是table_typeis的同義詞。在MySQL 5.1中,首選storage_engine。
Sql>show variables like “storage%”;
162. sync_binlog
如果為正,當每個sync_binlog‘th寫入該二進制日志后,MySQL服務器將它的二進制日志同步到硬盤上(fdatasync())。請注意如果在autocommit模式,每執行一個語句向二進制日志寫入一次,否則每個事務寫入一次。 默認值是0,不與硬盤同步。值為1是最安全的選擇,因為崩潰時,你最多丟掉二進制日志中的一個語句/事務;但是,這是最慢的選擇(除非硬盤有電池備份緩存,從而使同步工作較快)。
Sql>show variables like “sync%”;
163. sync_frm
如果該變量設為1,當創建非臨時表時它的.frm文件被同步到硬盤上(fdatasync());這樣較慢但出現崩潰時較安全。 默認值為1。
Sql>show variables like “sync%”;
164. system_time_zone
服務器系統時區。當 服務器開始執行時,它繼承機器默認時區設置值,可以由運行服務器的賬戶或在啟動腳本中進行修改。該值用來設置system_time_zone。典型情況用TZ環境變量來指定時區。還可以用mysqld_safe腳本的--timez選項來指定。
Sql>show variables like “system%”;
165. table_open_cache
所有線程打開的表的數目。增大該值可以增加mysqld需要的文件描述符的數量。你可以檢查Opened_tables狀態變量來檢查你是否需要增加表緩存。參見5.3.4節,“服務器狀態變量”。如果Opened_tables值較大,並且多次執行FLUSH TABLES(只是強制關閉所有表並重新),則應增加table_cache變量的值。
關於表緩存的詳細信息,參見7.4.9節,“MySQL如何打開和關閉表”。
Sql>show variables like “table%”;
166. table_type(未找到)
默認表類型(存儲引擎)。要想在服務器啟動時設置表類型,使用--default-table-type選項。參見5.3.1節,“mysqld命令行選項”。
167. thread_cache_size
服務器應緩存多少線程以便重新使用。當客戶端斷開連接時,如果線程少於thread_cache_size,則客戶端的線程被放入緩存。當請求線程時如果允許可以從緩存中重新利用線程,並且只有當緩存空了時才會創建新線程。如果新連接很多,可以增加該變量以提高性能。(一般情況,如果線程執行得很好,性能提高不明顯)。檢查Connections和Threads_created狀態變量的差(詳見5.3.4節,“服務器狀態變量”),你可以看見線程緩存的效率。
Sql>show variables like “thread%”;
168. thread_concurrency
在Solaris中,mysqld用該值調用thr_setconcurrency()。該函數使應用程序向線程系統提供需要同時運行的期望的線程數目的提示。
Sql>show variables like “thread%”;
169. thread_stack
每個線程的堆棧大小。用crash-me測試檢測出的許多限制取決於該值。 默認值足夠大,可以滿足普通操作。參見7.1.4節,“MySQL基准套件”。
Sql>show variables like “thread%”;
170. time_format
該變量為使用。
Sql>show variables like “time%”;
171. time_zone
當前的時區。初使值是‘SYSTEM‘(使用system_time_zone的值),但可以用--default-time-zone選項在服務器啟動時顯式指定。
Sql>show variables like “time%”;
172. tmp_table_size
如果內存內的臨時表超過該值,MySQL自動將它轉換為硬盤上的MyISAM表。如果你執行許多高級GROUP BY查詢並且有大量內存,則可以增加tmp_table_size的值。
Sql>show variables like “tmp%”;
173. tmpdir
保存臨時文件和臨時表的目錄。該變量可以設置為幾個路徑,按round-robin模式使用。在Unix中應該用冒號(‘:’)間隔開路徑,在Windows、NetWare和OS/2中用分號(‘;’)。
用來將負荷分散到幾個物理硬盤上。如果MySQL服務器為復制從服務器,你不應將tmpdir設置為指向基於內存的文件系統上的目錄或當服務器主機重啟時聲明的目錄。復制從服務器需要部分臨時文件來在機器重啟后仍可用,以便它可以復制臨時表或執行LOAD DATA INFILE操作。如果服務器重啟時臨時文件夾中的文件丟失了,則復制失敗。但是,如果你使用MySQL 4.0.0或更新版本,你可以使用 slave_load_tmpdir變量設置從服務器的臨時目錄。在這種情況下,從服務器不再使用常規tmpdir,說明你可以將tmpdir設置到一個非固定位置。
Sql>show variables like “tmp%”;
174. transaction_alloc_block_size
為保存將保存到二進制日志中的事務的查詢而分配的內存塊的大小(字節)。
Sql>show variables like “transaction%”;
175. transaction_prealloc_size
為transaction_alloc_blocks分配的固定緩沖區的大小(字節),在兩次查詢之間不會釋放。使該值足夠大,將所有查詢固定到一個事務中,可以避免多次malloc()調用。
Sql>show variables like “transaction%”;
176. tx_isolation
默認事務隔離級別。默認值為REPEATABLE-READ。
Sql>show variables like “tx_%”;
177. updatable_views_with_limit
該變量控制如果更新包含LIMIT子句,是否可以在當前表中使用不包含主關鍵字的視圖進行更新。(通常用GUI工具生成這類更新)。更新指UPDATE或DELETE語句。這兒主關鍵字指PRIMARY KEY,或一個UNIQUE索引,其中任何列不可以包含NULL。
該變量有兩個值:
1或YES |
只發出警告(沒有錯誤消息)。這是 默認值。 |
0或NO |
禁止更新。 |
Sql>show variables like “updatable_%”;
178. version
服務器版本號。
Sql>show variables like “version_%”;
179. version_bdb(未找到)
BDB存儲引擎版本。
180. version_comment
configure腳本有一個--with-comment選項,當構建MySQL時可以進行注釋。該變量包含注釋值。
Sql>show variables like “version_%”;
181. · version_compile_machine
MySQL構建的機器或架構的類型。
Sql>show variables like “version_%”
182. · version_compile_os
MySQL構建的操作系統的類型。
Sql>show variables like “version_%”
183. wait_timeout
服務器關閉非交互連接之前等待活動的秒數。
在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,取決於客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。又見interactive_timeout。
Sql>show variables like “wait_%”
解
---恢復內容結束---