系統(tǒng)變量提供的是各種與服務(wù)器配置和功能有關(guān)的信息。大部分的系統(tǒng)變量都可以在服務(wù)器啟動(dòng)時(shí)進(jìn)行設(shè)置。在運(yùn)行時(shí),每一個(gè)系統(tǒng)變量都擁有一個(gè)全局值或會(huì)話值,或者同時(shí)擁有這兩個(gè)值。許多系統(tǒng)變量都是動(dòng)態(tài)的,也就是說,可以在服務(wù)器鄭州運(yùn)行時(shí)修改它們的值。這些類型的信息都會(huì)在每個(gè)變量的描述里(與變量名同處一行)指明。 對(duì)于那些可以在服務(wù)器啟動(dòng)時(shí)設(shè)置的變量,看到的是“自動(dòng)”一詞,后面緊跟著“直接設(shè)置”或某個(gè)選項(xiàng)?!爸苯釉O(shè)置”的意思是:可以在命令行上或者在選項(xiàng)文件里,使用與變量名同名的選項(xiàng)直接設(shè)置該變量。否則,在“啟動(dòng)”的后面需要緊跟用來設(shè)置變量的那個(gè)選項(xiàng)。 如果需要指明某個(gè)變量的作用范圍,則會(huì)看到“啟動(dòng)”一詞,而后面緊跟著的是“全局”或“會(huì)話”(或者兩者皆有),用以表明該變量是否擁有GLOBAL形式或SESSION形式(或者是否同時(shí)擁有這兩種形式)。運(yùn)行時(shí)只讀的變量通常只有一個(gè)全局值。 對(duì)于那些在服務(wù)器運(yùn)行時(shí)可以進(jìn)行修改的變量,則會(huì)看到“動(dòng)態(tài)”一詞。 通過 SHOW VARIABLES 語句或 mysqladmin variables 命令,可以查看這些系統(tǒng)變量。也可以檢查數(shù)據(jù)庫 INFORMATION_SCHEMA 里的 GLOBAL_VARIABLES 表和 SESSION_VARIABLES 表,以獲得系統(tǒng)變量的信息。要想顯示單個(gè)變量值,可以對(duì)于全局變量使用 SELECT @@GLOBAL.var_name,對(duì)會(huì)話變量使用 SELECT @@SESSION.var_name 或 SELECT @@var_name。 使用 SET 語句可以設(shè)置系統(tǒng)變量。如果要設(shè)置全局變量,則必須要擁有 SUPER 權(quán)限。設(shè)置會(huì)話變量通常不需要特別的權(quán)限。例外情況會(huì)特別注明。 系統(tǒng)變量的名字不區(qū)分大小寫。 auto_increment_increment (啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 在服務(wù)器每次生成一個(gè)新序列值時(shí),AUTO_INCREMENT 值的地增量。取值范圍是 1~65535;默認(rèn)值為1 。 auto_increment_offset (啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) AUTO_INCREMENT 序列的其實(shí)質(zhì)。取值范圍是 1~65535;默認(rèn)值為 1 。 autocommit (啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 事務(wù)處理的自動(dòng)提交模式。默認(rèn)值為 1,因此自動(dòng)提交功能是啟用的,并且語句會(huì)立即生效。本質(zhì)上,每條語句都是其自身的事務(wù)。將這個(gè)值設(shè)置為 0,可以禁用自動(dòng)提交功能,如此一來,后續(xù)語句便只有等到提交完成(可以使用 COMMIT 語句,或者將 autocommit 設(shè)置為1來完成提交)之后才能生效。如果提交還未發(fā)生,則可以通過 ROLLBACK 來取消事務(wù)里的語句。將 autocommit 這時(shí)為1,可以重新啟用自動(dòng)提交(并且會(huì)隱式提交所有掛起的事務(wù))。 auto_sp_privileges (啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果此變量為1(默認(rèn)值),那么在你創(chuàng)建存儲(chǔ)例程時(shí),MySQL服務(wù)器將自動(dòng)授予你 EXECUTE 和 ALTER ROUTINE 權(quán)限,讓你隨后可以執(zhí)行、修改或刪除該例程。當(dāng)刪除例程時(shí),MySQL服務(wù)器會(huì)收回那些權(quán)限。如果auto_sp_privileges 的值為0,則上述權(quán)限的自動(dòng)授予和回收機(jī)制將不起作用。 back_log(啟動(dòng):直接設(shè)置;作用范圍:全局) 當(dāng)前連接正在處理時(shí),排隊(duì)中的最大等待連接請(qǐng)求數(shù)量。 basedir(啟動(dòng):直接設(shè)置;作用范圍:全局) MySQL安裝根目錄的路徑名。如果其他路徑名是以相對(duì)路徑名的形式給出的,那么這些路徑名會(huì)相對(duì)于此目錄進(jìn)行解析。 big_tables(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 將此變量設(shè)置為1,可以使得在處理大型的結(jié)果集時(shí),將所有臨時(shí)結(jié)果保存到磁盤,而不是講它們保留在內(nèi)存里。雖然這樣做會(huì)使性能變得慢一點(diǎn),但是那些要求大型臨時(shí)表的SELECT語句不會(huì)產(chǎn)生“表已滿”的錯(cuò)誤。其默認(rèn)值為0(即把臨時(shí)表保存在內(nèi)存里)。通常情況下,不需要設(shè)置此變量,因?yàn)榉?wù)器會(huì)根據(jù)需要自動(dòng)將結(jié)果保存到磁盤里。 bind_address(啟動(dòng):直接設(shè)置;作用范圍:全局) 服務(wù)器在監(jiān)聽TCP/IP客戶端連接時(shí)所綁定的那個(gè)IP地址。自MySQL5.6.6起,其默認(rèn)值為*(即監(jiān)聽所有的IPv4和IPv6接口);那一起的版本,默認(rèn)值為0.0.0.0(即監(jiān)聽所有的IPv4接口)。此變量是在MySQL5.6.1里引入的。 binlog_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 用于存儲(chǔ)SQL語句(在將它們刷新到二進(jìn)制日志之前,它們是事務(wù)的一部分)的那個(gè)緩存的大小。(只有當(dāng)事務(wù)被提交,或者事務(wù)里包括有對(duì)非事務(wù)型表進(jìn)行更新的語句時(shí),這些語句才會(huì)被刷新。如果只回滾某個(gè)更新事務(wù)型表的事務(wù),那么這些語句將被丟棄。) binlog_checksum(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 是否在往二進(jìn)制日志寫入的事件里包含校驗(yàn)和。可取值包括:NONE(不寫入校驗(yàn)和)和CRC32。此變量是在MySQL 5.6.2里引入的。在MySQL 5.6.6之前,默認(rèn)值為NONE;之后,默認(rèn)值為CRC32。 binlog_direct_non_transactional_updates(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 可以同時(shí)更新事務(wù)型表和非事務(wù)型表的事務(wù),可能會(huì)導(dǎo)致住服務(wù)器里的更新與從服務(wù)器里的更新不一致,因?yàn)閷?duì)非事務(wù)型語句的更新,在它們出現(xiàn)在二進(jìn)制日志之前,對(duì)于其他會(huì)話來講是可見的。啟用此變量(默認(rèn)是禁用的)會(huì)導(dǎo)致非事務(wù)型更新被立即寫到二進(jìn)制日志里,而不是被緩存起來,一直到事務(wù)提交之后才寫入。啟用此變量,僅對(duì)于那些使用基于語句的日志記錄進(jìn)行復(fù)制的語句才有效。 binlog_format(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 二進(jìn)制的日志記錄格式。其可取值包括:STATEMENT、ROW和MIXED,分別代表的是基于語句的日志記錄格式、基于行的日志記錄格式和混合型日志記錄格式。如果使用unhealthy格式,則MySQL服務(wù)器將根據(jù)具體情況在基于語句的和基于行的日志記錄格式之間自動(dòng)切換。默認(rèn)格式為STATEMENT。運(yùn)行時(shí),如果要更改此變量或者會(huì)話值,客戶端必須擁有SUPER權(quán)限。 binlog_row_image(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 基于行的二進(jìn)制日志記錄會(huì)使用之前和之后的“圖像”來標(biāo)書原始行和更改行。binlog_row_image控制著這些圖像將包含多少列。FULL(默認(rèn)值)表示記錄所有列。MINIMAL只會(huì)記錄那些需要確定行的列和被更改過的列。NOBLOB與FULL很想,它去掉了無關(guān)緊要的BLOB和TEXT列。此變量是在MySQL 5.6.2里引入的。 binlog_rows_query_log_events(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 在啟用基于行的二進(jìn)制日志記錄之后,啟用此變量可以讓有助于調(diào)試的信息包含在二進(jìn)制日志里。此變量是在MySQL 5.6.2里引入的。 binlog_stmt_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 在事務(wù)內(nèi)執(zhí)行非事務(wù)語句所需要的使用的緩存的大小。默認(rèn)大小為32K。此變量是在MySQL 5.5.9里引入的。 bulk_insert_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 用于幫助優(yōu)化往MyISAM表里批量插入語句的緩存的大小。這里包括LOAD DATA語句、行INSERT語句和INSERT INTO … SELECT語句。當(dāng)值為0時(shí)將禁用優(yōu)化。 character_set_client(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 客戶端想服務(wù)器發(fā)送的那些SQL語句的字符集。 character_set_connection(作用范圍:全局、會(huì)話;動(dòng)態(tài)) “客戶端-服務(wù)器”連接的字符集。它主要用于解釋字符串常量(帶有前異符的字符串不包括在內(nèi)),以及哪些“從數(shù)字轉(zhuǎn)換到字符串”而得到的那些字符串的字符集。 character_set_database(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 默認(rèn)數(shù)據(jù)庫(如果有的話)的字符集。如果沒有默認(rèn)的數(shù)據(jù)庫(例如,如果客戶在連接MySQL服務(wù)器時(shí)沒有指定默認(rèn)數(shù)據(jù)庫),此變量將被設(shè)置為系統(tǒng)變量character_set_server的值。每當(dāng)用戶選擇一個(gè)不同的數(shù)據(jù)庫,MySQL服務(wù)器便會(huì)自動(dòng)設(shè)置character_set_database的值。 character_set_filesystem(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 文件系統(tǒng)的字符集。這個(gè)字符集用來解釋SQL語句里的文件名字符串,如LOAD DATA語句里的數(shù)據(jù)文件的名字。服務(wù)器在訪問文件之前,會(huì)先把文件名從character_set_client變量指定的字符集轉(zhuǎn)換為character_set_filesystem變量指定的那個(gè)字符集。默認(rèn)為binary(即不會(huì)進(jìn)行轉(zhuǎn)換)。 character_set_results(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 服務(wù)器的發(fā)送給客戶端的那些查詢結(jié)果的字符集。 character_set_server(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 服務(wù)器的默認(rèn)字符集。 character_set_system(作用范圍:全局) 系統(tǒng)字符集。其值總是utf8。這是各種元數(shù)據(jù)(如數(shù)據(jù)庫名、表名和列名)鎖使用的字符集。像DATABASE()、CURRENT_USER()、USER()和VERSION()這樣的函數(shù)也是使用這個(gè)字符集。 character_set_dir(啟動(dòng):直接設(shè)置;作用范圍:全局) 存放字符集文件的那個(gè)目錄。 collation_connection(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 鏈接的字符集排序規(guī)則。 collation_database(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 數(shù)據(jù)庫的字符集排序規(guī)則,如果有的話。如果沒有默認(rèn)的數(shù)據(jù)庫(例如,如果客戶在連接MySQL服務(wù)器時(shí)沒有指定默認(rèn)數(shù)據(jù)庫),此變量將被色織為系統(tǒng)變量collation_server的值。每當(dāng)用戶選擇一個(gè)不同的數(shù)據(jù)庫,MySQL服務(wù)器便會(huì)自動(dòng)設(shè)置collation_database的值。 collation_server(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 服務(wù)器默認(rèn)字符集所對(duì)應(yīng)的默認(rèn)排序方式。 completion_type(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 事務(wù)的完成類型。此變量的值為0(默認(rèn)值)或NO_CHAIN時(shí),不會(huì)影響COMMIT和ROLLBACK。此變量的值為1或CHAIN時(shí),將導(dǎo)致COMMIT和ROLLBACK分別等價(jià)于COMMIT AND CHAIN和ROLLBACK AND CHAIN語句。此變量的值為2或者RELEASE時(shí),將使它們分別等價(jià)于COMMIT RELEASE和ROLLBACK RELEASE。AND CHAIN的含義是,當(dāng)一個(gè)事務(wù)結(jié)束時(shí),服務(wù)器將終止會(huì)話。 concurrent_insert(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 對(duì)于在數(shù)據(jù)文件的中間沒用空洞的MyISAM表,MySQL服務(wù)器允許在對(duì)已有行進(jìn)行檢索的同時(shí)在該表的末尾插入新行。此變量控制著服務(wù)器是否允許并發(fā)插入。此變量的值為0(或NEVER)時(shí),會(huì)禁用此功能。此變量的值為1(或AUTO)時(shí),會(huì)啟用此功能。此變量的值為2(或ALWAYS)時(shí),會(huì)對(duì)所有的MyISAM表啟用并發(fā)插入,不管它們的數(shù)據(jù)文件里是否有空洞;此時(shí),新行將被添加到正被使用的那個(gè)表的末尾,或者插到空洞處。默認(rèn)值為1。 connect_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) mysqld在開始建立連接時(shí)等待數(shù)據(jù)包的秒數(shù)。默認(rèn)值為10。 core_file(啟動(dòng):直接設(shè)置;作用范圍:全局) 當(dāng)發(fā)生致命錯(cuò)誤時(shí),服務(wù)器在退出前是否需要生成一個(gè)核心文件。此變量是在MySQL 5.6.2里引入的。 datadir(啟動(dòng):直接設(shè)置;作用范圍:全局) MySQL數(shù)據(jù)目錄的路徑名。 date_format(作用范圍:全局) 此變量未被使用。 datetime_format(作用范圍:全局) 此變量未被使用。 debug(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 調(diào)試輸出的類型。此變量只有在服務(wù)器編譯時(shí)帶有調(diào)試支持時(shí)才存在。 default_storage_engine(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 在創(chuàng)建表時(shí),如果沒有帶上ENGINE=engine_name選項(xiàng)或使用了一個(gè)不被支持的engine_name值,就使用此變量指定的引擎作為默認(rèn)存儲(chǔ)引擎。存儲(chǔ)引擎的名字不區(qū)分大小寫。默認(rèn)為InnoDB。 default_tmp_storage_engine(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 與default_storage_engine相似,但它適用于那些使用CREATE TEMPORARY TABLE創(chuàng)建的表。此變量是在MySQL 5.6.3里引用的。 default_week_format(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 當(dāng)調(diào)用WEEK()或YEARWEEK()函數(shù)時(shí),如果不帶可選的mode參數(shù),則默認(rèn)為此變量設(shè)置的那個(gè)模式值。 delay_key_write(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 對(duì)于使用DELAY_KEY_WRITE選項(xiàng)創(chuàng)建的MyISAM表,服務(wù)器是否需要延遲鍵寫入。此變量由以下3中可取值。 ON(默認(rèn)值)。此時(shí),服務(wù)器會(huì)根據(jù)DELAY_KEY_WRITE選項(xiàng)的值進(jìn)行操作;如果表時(shí)用DELAY_KEY_WRITE=1選項(xiàng)創(chuàng)建的,則延遲鍵寫入;如果表使用DELAY_KEY_WRITE=0選項(xiàng)創(chuàng)建的,則不延遲。 OFF。它表示的是,對(duì)任務(wù)表都不延遲鍵寫入,不管它們是如何定義的。 ALL。它表示的是,對(duì)任務(wù)表都總是延遲鍵寫入,不管它們是如何定義的。 比較常見的做法是,在運(yùn)行復(fù)制從服務(wù)器時(shí)將delay_key_write設(shè)置為ALL,以提高M(jìn)yISAM表的性能(不管這些表最初是如何被創(chuàng)建的,都延遲其鍵寫入)。 delayed_insert_limit(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是該表的延遲行處理器在檢查表是否有新的SELECT語句到來之前插入的源自INSERT DELAYED語句的行數(shù)量。如果有語句到達(dá),則將插入操作掛起,以便檢索操作能夠得到執(zhí)行。 delayed_insert_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 當(dāng)INSERT DELAYED操作的處理器插入完排隊(duì)的各個(gè)行是,它會(huì)等待dealyed_insert_timeout秒,檢查一下是否有新的INSERT DELAYED行到達(dá)。如果有行到達(dá),則繼續(xù)插入;否則終止插入操作。 delayed_queue_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 每個(gè)表針對(duì)INSERT DELAYED有可以排入隊(duì)列的行數(shù)量。當(dāng)隊(duì)列排滿時(shí),則會(huì)有更多針對(duì)該表的INSERT DELAYED語句被阻塞,一直到隊(duì)列擁有足夠的空間為止。 div_precision_increment(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 在使用操作符/對(duì)兩個(gè)精確數(shù)值做除法運(yùn)算時(shí),此變量表示的是需要增加的精度位數(shù)。例如,當(dāng)div_precision_increment的值為4或6時(shí),.1/.7的結(jié)果分別為.14286或0.1428571。此變量的取值范圍是0~30,默認(rèn)為4。 eq_range_index_dive_limit(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 對(duì)于使用非唯一索引的相等比較處理,它指的是優(yōu)化器使用索引統(tǒng)計(jì)代替索引等分進(jìn)行行估算的范圍上限。當(dāng)值為0時(shí),將禁用統(tǒng)計(jì)。默認(rèn)為10。此變量是在MySQL 5.6.5里引入的。在此之前,不管范圍值為多少,都會(huì)使用索引等分。 error_count(作用范圍:會(huì)話) 這時(shí)一個(gè)只讀會(huì)話變量,它表示的是可能產(chǎn)生錯(cuò)誤的最后那條語句所產(chǎn)生的錯(cuò)誤數(shù)量。 event_scheduler(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 時(shí)間調(diào)度器的狀態(tài)。此變量的可取值包括:OFF、ON或DISABLED。在啟動(dòng)MySQL服務(wù)器時(shí),如果把此變量設(shè)置為DISABLED,那么時(shí)間調(diào)度器的狀態(tài)將無法再M(fèi)ySQL服務(wù)器運(yùn)行時(shí)被更改。在啟動(dòng)MySQL服務(wù)器時(shí),如果把此變量設(shè)置為ON或OFF,那么在MySQL服務(wù)器運(yùn)行時(shí)只能讓事件調(diào)度器的狀態(tài)在這兩個(gè)值之間進(jìn)行更改。默認(rèn)值為OFF。 expire_logs_days(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量的默認(rèn)值為0。如果將其設(shè)置成其他的值,則MySQL服務(wù)器將自動(dòng)刪除在expire_logs_days天之前創(chuàng)建的日志文件,并更新該二進(jìn)制日志的索引文件。MySQL服務(wù)器將在它每次啟動(dòng)以及每次打開一個(gè)新的二進(jìn)制日志文件時(shí)執(zhí)行這個(gè)到期檢查。 external_user(作用范圍:會(huì)話) 這是個(gè)只讀變量,可以通過用于認(rèn)證當(dāng)前用戶的身份認(rèn)證插件進(jìn)行設(shè)置。此變量是在MySQL 5.5.7里引入的。 flush(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它用于表明服務(wù)器是否會(huì)在每次更新后將MyISAM表刷新到磁盤。這樣可以降低在出現(xiàn)系統(tǒng)崩潰時(shí)表被損壞的風(fēng)險(xiǎn),但是它會(huì)嚴(yán)重降低性能。因此,只有在使用不穩(wěn)定的系統(tǒng)時(shí)它才會(huì)有用處。默認(rèn)值是OFF。 flush_time(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果此變量為非零值,那么MySQL服務(wù)器會(huì)每隔flush_time秒關(guān)閉一次表,以便將尚未寫入磁盤的更改刷新到磁盤。如果你的系統(tǒng)不夠穩(wěn)定,經(jīng)常會(huì)死機(jī)或重啟,那么使用此方法強(qiáng)行更新表,便可以減少表受損或數(shù)據(jù)丟失的概率,但是會(huì)降低性能。在Unix系統(tǒng)上,其默認(rèn)值為0;在Windows上,其默認(rèn)值為1800(即30分鐘)。 foreign_key_checks(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 將此變量設(shè)置為0或1將分別禁用或期待InnoDB表的外鍵檢查。默認(rèn)進(jìn)行檢查。禁用外鍵檢查有時(shí)會(huì)非常有用。例如,可以按不同于表的外鍵關(guān)系所要求的順序恢復(fù)一個(gè)創(chuàng)建和加載表的轉(zhuǎn)儲(chǔ)文件。在加載完表之后,可以重新啟用外鍵檢查。 ft_boolean_syntax(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 支持使用IN BOOLEAN MODE模式的進(jìn)行FULLTEXT搜索的操作符列表。 ft_max_word_len(啟動(dòng):直接設(shè)置;作用范圍:全局) 包括在FULLTEXT索引里的單詞所允許的最大長(zhǎng)度。更長(zhǎng)的單詞會(huì)被忽略掉。在你更改此變量的值時(shí),應(yīng)該重建所有擁有這些FULLTEXT索引的MyISAM表的索引。默認(rèn)值為84。 ft_min_word_len(啟動(dòng):直接設(shè)置;作用范圍:全局) 包括在FULLTEXT索引里的單詞所允許的最小長(zhǎng)度。更短的單詞會(huì)被忽略掉。在你更改此變量的值時(shí),應(yīng)該重建所有擁有這些FULLTEXT索引的MyISAM表的索引。默認(rèn)值為4。 ft_query_expansion_limit(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量用于那些使用WITH QUERYEXPANSION子句完成的全文檢索。它決定了在每次搜索的第二階段所能使用的“最佳匹配”的數(shù)量。 ft_stopword_file(啟動(dòng):直接設(shè)置;作用范圍:全局) 用于FULLTEXT索引的停用詞文件。默認(rèn)使用內(nèi)奸的停用詞列表。如果要禁用停用詞,可以將此變量的值設(shè)置為空串。在你更改此變量的值或者停用詞列表的內(nèi)容時(shí),應(yīng)該重建所有擁有這些FULLTEXT索引的MyISAM表的索引。 general_log(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它用于指定是否要用普通查詢?nèi)罩镜娜罩居涗洝H绻獑⒂?,log_output變量會(huì)控制日志的輸出目標(biāo)。 general_log_file(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是普通查詢?nèi)罩疚募拿?。在啟用了FILE日志記錄目標(biāo)時(shí),會(huì)用到它。它默認(rèn)位于數(shù)據(jù)目錄里的HOSTNAME.log中,其中HOSTNAME時(shí)服務(wù)器主機(jī)的名字。如果其文件名是以相對(duì)路徑形式給出的,則服務(wù)器會(huì)將它解釋為相對(duì)于數(shù)據(jù)目錄。 group_concat_max_len(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) GROUP_CONCAT()函數(shù)返回值的長(zhǎng)度上限(默認(rèn)為1024)。 have_compress(作用范圍:全局) 它表示的是,服務(wù)器用于實(shí)現(xiàn)COMPRESS()和UNCOMPRESS()函數(shù)所需要的那個(gè)zlib壓縮庫是否可用。如果不可用,那么這兩個(gè)函數(shù)將無法使用。 have_crypt(作用范圍:全局) 它表示的是,服務(wù)器用于實(shí)現(xiàn)CRYPT()函數(shù)所需要的那個(gè)crypt()系統(tǒng)調(diào)用是否可用。如果不可用,那么該函數(shù)將無法使用。 hav_dynamic_loading(作用范圍:全局) 它表示的是,服務(wù)器是否支持動(dòng)態(tài)加載各種插件。 have_geometry(作用范圍:全局) 它表示的是,空間數(shù)據(jù)類型是否可用。 have_openssl(作用范圍:全局) 它表示的是,服務(wù)器是否允許客戶端使用SSL來建立加密連接。have_openssl等同于have_ssl。 have_query_cache(作用范圍:全局) 它表示的是,查詢緩存是否可用。 have_rtree_keys(作用范圍:全局) 它表示的是,RTREE索引是否可用于SPATIAL索引。 have_ssl(作用范圍:全局) 它表示的是,服務(wù)器是否允許客戶端使用SSL來建立加密連接。have_ssl等同于have_openssl。 have_symlink(作用范圍:全局) 如果服務(wù)器在啟動(dòng)時(shí)帶有—skip-symbolic-links選項(xiàng),則此變量為DISABLED;否則,其可取值為YES或NO,但是實(shí)際的含義取決于具體的系統(tǒng)平臺(tái)。在Unix里,它表示MyISAM表是否支持表符號(hào)的鏈接。在Windows里,它表示是否支持?jǐn)?shù)據(jù)庫符號(hào)鏈接。 host_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是主機(jī)緩存的大小,這個(gè)緩存的用途是保存與客戶端連接嘗試以及嘗試是否成功有關(guān)的信息。連接失敗時(shí)主機(jī)通常會(huì)被阻塞,一直到該緩存被刷新。在運(yùn)行時(shí)更改此變量的值會(huì)刷新該緩存(與FLUSH HOSTS的效果一樣)。默認(rèn)值為128。此變量是在MySQL 5.6.5里引入的。 hostname(作用范圍:全局) 服務(wù)器的主機(jī)名。MySQL服務(wù)器會(huì)在啟動(dòng)時(shí)自動(dòng)確定此變量的值。 identity(作用范圍:會(huì)話;動(dòng)態(tài)) 等同于會(huì)話變量last_insert_id。 ignore_db_dirs(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量會(huì)被—ignore-db-dir選項(xiàng)的實(shí)例進(jìn)行設(shè)置,它表示的是數(shù)據(jù)庫目錄里的目錄不會(huì)被SHOW DATABASES或數(shù)據(jù)庫INFORMATION_SCHEMA里的表當(dāng)作數(shù)據(jù)庫目錄。默認(rèn)為空。此變量是在MySQL 5.6.3里引入的。 init_connect(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果此變量的值不為空,那么它指定的是一條或多條以分號(hào)分隔的SQL語句(它們會(huì)在每個(gè)SUPER權(quán)限的用戶,init_connect變量將被忽略,目的是為了避免此變量值里包含的不正確或不恰當(dāng)?shù)恼Z句導(dǎo)致管理員用戶無法連接到服務(wù)器更正該錯(cuò)誤。 init_file(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果此變量的值不為空,那么它指定的是一個(gè)文件名,該文件名對(duì)應(yīng)的文件中包括的是服務(wù)器在啟動(dòng)時(shí)執(zhí)行的SQL語句。如果文件名是以相對(duì)路徑形式指定的,那么服務(wù)器會(huì)將它解釋為相對(duì)于數(shù)據(jù)目錄。此文件應(yīng)該是每行一條語句,并且這些語句不應(yīng)該以“;”或者其他終止符作為結(jié)尾。 init_slave(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 對(duì)于主復(fù)制服務(wù)器,如果此變量的值不為空,那么它指定的是在每個(gè)從復(fù)制服務(wù)器進(jìn)行連接時(shí)都會(huì)被執(zhí)行的語句。該值的內(nèi)容應(yīng)該是一條或多條SQL語句,期間用分號(hào)分割。 Innodb_xxx insert_id(作用范圍:會(huì)話;動(dòng)態(tài)) 設(shè)置此變量,可以指定下一個(gè)INSERT語句在插入一個(gè)AUTO_INcREMENT列時(shí)使用的值。它用于二進(jìn)制日志的處理。 interactive_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量指的是,在服務(wù)器自己認(rèn)為可以將交互式客戶端會(huì)話關(guān)閉之前,該會(huì)話能夠保持空閑的秒數(shù)。對(duì)于非交互式客戶端,需要使用wait_timeout變量來代替。 join_buffe_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是連接(它們是在未使用索引的情況下執(zhí)行的,并且需要進(jìn)行全表掃描)和特定類型的索引掃描所使用的緩沖區(qū)的最小大小。 keep_files_on_create(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 如果在創(chuàng)建MySAM表的CREATE TABLE語句里明確給出了DATA DIRECTORY或INDEX DIRECTORY選項(xiàng),并且服務(wù)器在給定的目錄里分別找到了一個(gè)已有的數(shù)據(jù)文件或索引文件,那么它會(huì)返回一個(gè)錯(cuò)誤。當(dāng)沒有使用DATA DIRECTORY或INDEX DIRECTORY選項(xiàng)來指定數(shù)據(jù)文件或索引文件的存放位置時(shí),keep_files_on_create變量會(huì)控制服務(wù)器如何創(chuàng)建MyISAM表。如果此變量的值為OFF(默認(rèn)值),并且服務(wù)器找到了一個(gè)已有的.MYD數(shù)據(jù)文件或.MYI索引文件,那么它會(huì)覆蓋該文件。如果此變量的值為ON,服務(wù)器會(huì)返回一個(gè)錯(cuò)誤。 key_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是用于緩存MyISAM表索引塊的緩沖區(qū)大小。這個(gè)緩沖區(qū)在各個(gè)會(huì)話之間是共享的。此變量和其他的鍵緩存變量(key_cache_age_threshold、key_cache_block_size和key_cache_limit)是以分組的形式存在的,并且可以作為結(jié)構(gòu)化系統(tǒng)變量的組成部分進(jìn)行訪問。為了更好地控制鍵緩存的作用,可以創(chuàng)建多個(gè)鍵緩存。 key_cache_age_threshold(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,在被移到暖子鏈之前,未使用的緩沖塊在MyISAM鍵緩存的熱子鏈里可以保留多久。值越高,允許緩沖塊在熱子鏈里保留的時(shí)間越長(zhǎng)。默認(rèn)值為300。最小值為100。 key_cache_block_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是MyISAM鍵緩存的塊大小。默認(rèn)情況下,一個(gè)緩存看的大小為1024字節(jié)。 key_cache_limit(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果此變量被設(shè)置為它的默認(rèn)值100,則MyISAM鍵緩存將使用“最近最少使用”策略來解決緩存緩沖區(qū)的重用問題。如果設(shè)置的值小于100,則鍵緩存將使用“中間插入”策略,而此變量的值即為暖緩沖子鏈?zhǔn)褂玫逆I緩存百分比值。此變量的取值范圍是1~100。 language(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量已過時(shí)。請(qǐng)使用lc_messages和lc_messages_dir來代替。 large_files_support(作用范圍:全局) 它指的是,MySQL服務(wù)器是否能夠處理大文件。 large_page_size(作用范圍:全局) 如果啟用了大頁面支持,此變量指的是大內(nèi)存頁的大小。如果未啟用,則其值為0。 large_pages(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是是否啟用了大內(nèi)存頁支持功能。只有Linux系統(tǒng)才支持大頁面。 last_insert_id(作用范圍:會(huì)話;動(dòng)態(tài)) 設(shè)置此變量,可以指定LAST_INSERT_ID()的返回值。它用于二進(jìn)制日志的處理。 lc_messages(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 出錯(cuò)信息的本地化語言。服務(wù)器會(huì)將本地化名字轉(zhuǎn)換為語言名字,并在lc_messages_dir變量指定的目錄里查找該語言名字所對(duì)應(yīng)的目錄,以便找到錯(cuò)誤信息文件的位置。 lc_messages_dir(啟動(dòng):直接設(shè)置;作用范圍:全局) 存放出錯(cuò)信息文件的目錄。 lc_time_names(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是函數(shù)DATE_FORMAT()、DAYTIME()和MONTHNAME()顯示日期和月份名字所使用的本地化語言。默認(rèn)值為en_US,但是也可以設(shè)置為POSIX風(fēng)格的語言名稱,如es_AR(西班牙語/阿根廷)或zh_HK(中文/中國(guó)香港)。 license(作用范圍:全局) 它指的是服務(wù)器所使用的許可類型。例如,如果服務(wù)器遵從的是GNU GPL(通用公共許可證)條款,則其值為GPL。 local_infile(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是服務(wù)器是否允許在LOAD DATA語句里使用LOCAL修飾符。 lock_wait_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是等待每個(gè)元數(shù)據(jù)所的秒數(shù)。如果語句阻塞的時(shí)間超過了等待鎖的時(shí)間,就會(huì)出錯(cuò)。允許的取值范圍是1~31536000(默認(rèn)為1年)。此變量是在MySQL 5.5.3里引入的。 locked_In_memory(啟動(dòng):--memlock;作用范圍:全局) 服務(wù)器是否鎖定在內(nèi)存中。 log(作用范圍:全局) 此變量已在MySQL 5.6里被棄用并刪除。請(qǐng)使用general_log來代替。 log_bin(作用范圍:全局) 是否啟用二進(jìn)制日志記錄功能。請(qǐng)注意,--log-bin選項(xiàng)設(shè)置的是log_bin_basename,而非log_bin。 log_bin_basename(作用范圍:全局) 二進(jìn)制日志文件的完整路徑名。此變量是在MySQL 5.6.2里引入的。 log_bin_index(作用范圍:全局) 二進(jìn)制日志索引文件的名字。此變量是在MySQL 5.6.2里引入的。 log_bin_trust_function_creators(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果要?jiǎng)?chuàng)建或修改存儲(chǔ)函數(shù),則必須擁有相應(yīng)的CREATE ROUTINE權(quán)限或ALTER ROUTINE權(quán)限。不過,如果啟用了二進(jìn)制日志記錄功能,并且log_bin_trust_function_creators的值為0(默認(rèn)值),那么還必須擁有SUPER權(quán)限,并且生命該存儲(chǔ)函數(shù)是確定性的(即不會(huì)修改任何數(shù)據(jù))。如果想禁用這些附加的要求,可以將此變量值設(shè)置為1。 log_error(啟動(dòng):直接設(shè)置;作用范圍:全局) 錯(cuò)誤日志文件的名字。如果不設(shè)置此變量,服務(wù)器會(huì)吧出錯(cuò)信息輸出到控制臺(tái)中斷。如果在服務(wù)器啟動(dòng)時(shí)指定了此變量,但未設(shè)置具體值,則日志文件名為數(shù)據(jù)目錄里的HOSTNAME.err,其中,HOSTNAME為服務(wù)器主機(jī)的名字。如果其文件是以相對(duì)路徑形式給出的,則服務(wù)器會(huì)將它解釋為相對(duì)于數(shù)據(jù)目錄。如果在指定文件名時(shí)沒有帶擴(kuò)展名,mysqld會(huì)添加一個(gè)擴(kuò)展名.err。 log_output(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了普通查詢?nèi)罩竞吐樵內(nèi)罩荆瑒t此變量指定的是它們的輸出目標(biāo)。此變量列出的是一組以都好分割的輸出目標(biāo)名。允許目標(biāo)包括:TABLE、FILE和NONE。如果指定了此變量,則NONE值會(huì)禁用日志記錄功能,并且它比其他的值優(yōu)先級(jí)更高。默認(rèn)值為FILE。設(shè)置系統(tǒng)變量general_log_file或slow_query_log_file,可以指定相應(yīng)日志文件的名字。 log_queries_not_using_indexs(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了慢查詢?nèi)罩?,則此變量將控制那些不使用索引的查詢是否應(yīng)該被記錄。如果進(jìn)行記錄,將使得日志文件迅速變得較大。請(qǐng)參考log_throttle_queries_not_using_indexes。 log_slave_updates(啟動(dòng):直接設(shè)置;作用范圍:全局) 對(duì)于復(fù)制從服務(wù)器從其主服務(wù)器的二進(jìn)制日志里接收到的更新,此變量控制著從服務(wù)器是否把這些更新記錄到它自己的二進(jìn)制日志里。默認(rèn)情況下,從服務(wù)器的更新記錄功能是禁用的。但是在鏈?zhǔn)綇?fù)制設(shè)置里,允許將一個(gè)從服務(wù)器當(dāng)作另一個(gè)從服務(wù)器的主服務(wù)器。 log_throttle_queries_not_using_indexes(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了log_throttle_queries_not_using_indexes,則它指的是每分鐘最多向慢查詢?nèi)罩纠飳懭氲恼Z句數(shù)量。默認(rèn)值為0,表示“無限制”。此變量是在MySQL 5.6.5里引入的。 log_slow_queries(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量已在MySQL 5.6里被棄用并刪除。請(qǐng)使用slow_query_log來代替。 log_warnings(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是把非關(guān)鍵性警告信息記錄到出錯(cuò)日志的記錄級(jí)別。如果此變量的值為0,則不記錄這些警告消息;如果值為1(默認(rèn)值),則啟用記錄。如果此變量的值大于1,則會(huì)提高日志記錄的級(jí)別,以包括那些與異常中止連接和“拒絕訪問”錯(cuò)誤有關(guān)的信息。 long_query_time(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量值的單位是秒。如果某個(gè)查詢命令的執(zhí)行時(shí)間大于了這個(gè)值(以及檢查的記錄會(huì)超過min_examined_row_limit行),則它會(huì)被認(rèn)為是一個(gè)“慢”查詢,并且會(huì)導(dǎo)致狀態(tài)變量slow_queries增加。此外,如果已啟用慢查詢?nèi)罩居涗浌δ?,則服務(wù)器會(huì)將該查詢寫入該日志。 最小值和默認(rèn)值分別為0和10。該值可以包含小數(shù)部分(即微秒)。不過,只有日志目標(biāo)時(shí)一個(gè)文件,而不是mysql.slow_query表時(shí),才會(huì)記錄小數(shù)部分。 low_priority_updates(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 如果啟用此變量,則對(duì)于使用表級(jí)鎖定機(jī)制的存儲(chǔ)引起,更新操作的優(yōu)先級(jí)將低于檢索操作。那些會(huì)修改表內(nèi)容的語句(DELETE、INSERT、REPLACE、UPDATE)將一直等待,知道表上沒有SELECT語句正在執(zhí)行或者正在等待執(zhí)行。如果有心的SELECT語句到來時(shí),另一條SELECT語句還在執(zhí)行,那么新語句會(huì)立即執(zhí)行,而不是等待優(yōu)先級(jí)的修改語句。對(duì)于那些支持LOW_PRIORITY選項(xiàng)的語句(如INSERT和UPDATE),啟用此變量與指定該選項(xiàng)的效果一樣。對(duì)于單獨(dú)的INSERT語句,可以通過HIGH_PRIORITY選項(xiàng)來取笑此變量的效果,并把插入操作恢復(fù)到正常的優(yōu)先級(jí)。 lower_case_file_system(作用范圍:全局) 此變量用來表明包含數(shù)據(jù)目錄的文件系統(tǒng)是否區(qū)分文件名的大小寫。如果此變量的值為ON,怎文件名不區(qū)分大小寫。(即可以把ON的含義理解為文件名的大寫和小寫版本都是一樣的。)如果此變量的值為OFF,則文件名區(qū)分大小寫。 lower_case_table_names(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量控制的是,在執(zhí)行CREATE DATABASE和CREATE TABLE語句時(shí),如何處理數(shù)據(jù)庫名和表明所對(duì)應(yīng)的目錄名和文件名。當(dāng)執(zhí)行這些語句時(shí),它還控制著服務(wù)器會(huì)如何進(jìn)行名字比較。下表列出了各種可能的取值。 取值 含義 0 按照CREATE DATABASE和CREATE TABLE語句里給出的名字來創(chuàng)建磁盤文件。名字的比較會(huì)區(qū)分大小寫。在文件名區(qū)分大小寫的系統(tǒng)里,它是默認(rèn)設(shè)置。 1 在創(chuàng)建數(shù)據(jù)庫和表時(shí),名字強(qiáng)制轉(zhuǎn)換為小寫形式。名字的比較不區(qū)分大小寫 2 以小寫形式保存名字,但是在進(jìn)行比較時(shí)不區(qū)分大小寫。也就是說,創(chuàng)建的文件名與那些CREATE語句里指定的一樣,但是不以區(qū)分大小寫的形式進(jìn)行不叫。只有在文件名區(qū)分大小寫的系統(tǒng)里才會(huì)使用此變量的值。 當(dāng)沒有顯示設(shè)置lower_case_table_names變量時(shí),如果數(shù)據(jù)目錄所在的文件系統(tǒng)不區(qū)分文件名的大小寫,那么MySQL服務(wù)器將自動(dòng)把此變量設(shè)置為2。將此變量設(shè)置為非零值,也會(huì)使得表的別名不區(qū)分大小寫。 master_info_repository(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量表示的是,從服務(wù)器是將主服務(wù)器的日志信息寫入文件,還是寫入表。如果該值為FILE(默認(rèn)值),則從服務(wù)器日志文件有—master-info-file選項(xiàng)指定。如果該值為TABLE,則服務(wù)器會(huì)把日志記錄到mysql.slave_master_inro表中。此變量是在MySQL 5.6.2里引入的。 master_verify_checksum(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量表示的是,在主服務(wù)器把從二進(jìn)制日志里讀取到的事件發(fā)送到從服務(wù)器之前,它是否驗(yàn)證這些時(shí)間的校驗(yàn)和。默認(rèn)值為OFF。此變量是在MySQL 5.6.2里引入的。 max_allowed_packet(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是服務(wù)器與客戶端之間通信時(shí)使用的那個(gè)緩沖區(qū)的最大大小。該緩沖區(qū)的初始大小為net_buffer_length個(gè)字節(jié),但是會(huì)根據(jù)需要增大到max_allowed_packet個(gè)字節(jié)。這個(gè)值也會(huì)限制MySQL服務(wù)器所能處理的字符串的最大長(zhǎng)度。此變量的默認(rèn)值和最大值分別是1MB和1GB。它的會(huì)話值是只讀的。 max_binlog_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是二進(jìn)制日志緩存的最大大小。在事務(wù)被提交之前,構(gòu)成事務(wù)的那些語句都會(huì)保存在二進(jìn)制日志緩存里,它們要等到事務(wù)被提交時(shí)才會(huì)被寫入二進(jìn)制日志。如果某個(gè)事務(wù)超出了此變量所設(shè)定的最大長(zhǎng)度,就必須被刷新到一個(gè)臨時(shí)硬盤文件里。那些影響非事務(wù)語句的語句會(huì)被單獨(dú)緩存;請(qǐng)參考max_binlog_stmt_cache_size。 max_binlog_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是二進(jìn)制日志文件的最大大小。如果當(dāng)前二進(jìn)制日志文件達(dá)到了此大小,則MySQL服務(wù)器將關(guān)閉它,并開始使用下一個(gè)文件。此變量的取值范圍為4KB~1GB。默認(rèn)值為1GB。 如max_relay_log_size被設(shè)置為0,那么max_binlog_size變量頁會(huì)對(duì)從服務(wù)器的中繼日志文件的大小進(jìn)行限制。 max_binlog_stmt_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量與max_binlog_cache_size相似,但是僅限于那些影響非事務(wù)表的語句(它們會(huì)被單獨(dú)緩存起來)。此變量是在MySQL 5.5.9里引入的。 max_connect_errors(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,主機(jī)在被組織繼續(xù)進(jìn)行連接之前,允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫系統(tǒng)。如果想清空這個(gè)主機(jī)緩存,并重新啟用被阻塞的主機(jī),可以使用FLUSH HOSTS語句或者mysqladmin flush-hosts命令。請(qǐng)參考狀態(tài)變量Connect_errors_xxx。 max_connections(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是客戶端連接的最大并發(fā)數(shù)。默認(rèn)值為151。 max_delayed_threads(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是為處理INSERT DELAYED語句而允許創(chuàng)建的最大線程數(shù)。當(dāng)達(dá)到最大處理器數(shù)時(shí),所有新接收到的這類語句都將被當(dāng)作非DELAYED語句??蛻舳丝梢园汛俗兞康闹翟O(shè)置為0,以便在自己的會(huì)話里禁用DELAYED插入。 max_error_count(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是服務(wù)器可以保存的出錯(cuò)信息、警告信息和提醒信息的最大數(shù)量。(這些信息總是會(huì)被通緝。此變量只會(huì)影響相關(guān)信息的存儲(chǔ)數(shù)量,并且可供SHOW ERRORS和SHOW WARNINGS使用。) max_heap_table_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是新建MEMORY表的最大允許長(zhǎng)度。更改此變量的值不會(huì)影響那些已有表,除非使用ALTER TABLE或者TRUNCATE TABLE語句來修改它們。此變量可以用于防止服務(wù)器使用過多的內(nèi)存。此變量還會(huì)對(duì)服務(wù)器如何處理其內(nèi)部使用的各種內(nèi)存表產(chǎn)生影響;請(qǐng)參考對(duì)tmp_table_size變量的描述。 max_insert_delayed_threads(啟動(dòng):使用—max-delayed-threads選項(xiàng);作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量等同于max_delayed_threads。 max_join_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 當(dāng)執(zhí)行多表連接時(shí),MySQL優(yōu)化器會(huì)估算它需要檢查多少個(gè)行組合。如果估算值超過了max_join_size行,則會(huì)出現(xiàn)一個(gè)錯(cuò)誤。如果你習(xí)慣于編寫會(huì)返回大量行的SELECT語句,則可以使用此變量。這個(gè)限制不會(huì)應(yīng)用于存儲(chǔ)在查詢緩存里的查詢結(jié)果,因?yàn)榫彺胬锏牟樵兘Y(jié)果不需要再次執(zhí)行該查詢即可被返回。 此變量需要與sql_big_selects變量一起使用,詳見對(duì)該變量描述的討論。將max_join_size設(shè)置為DEFAULT以外的某個(gè)值,會(huì)自動(dòng)將sql_big_selects設(shè)置為0。 max_length_for_sort_data(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 查詢優(yōu)化器將使用此變量來確定應(yīng)該為ORDER BY操作執(zhí)行哪一種filesort當(dāng)作。 max_prepared_stmt_count(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是服務(wù)器可以同時(shí)維護(hù)的預(yù)處理語句的最大數(shù)。將此變量的值設(shè)置得更小一點(diǎn),可將其用于限制服務(wù)器占用的內(nèi)存。此變量的可取值范圍是0~1000000默認(rèn)值為16382。當(dāng)將其值設(shè)置為0時(shí),可以完全禁用預(yù)處理語句。 max_relay_log_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是從服務(wù)器中繼日志文件的最大長(zhǎng)度。如果當(dāng)前中繼日志文件達(dá)到了此大小,則MySQL服務(wù)器將關(guān)閉它,并開始使用下一個(gè)文件。如果此變量的值是0,則服務(wù)器將使用max_binlog_size變量來控制中繼日志文件的最大長(zhǎng)度。此變量的取值范圍為4KB~1GB;默認(rèn)值為0。 max_seeks_for_key(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 查詢優(yōu)化器在進(jìn)行基于鍵的查找時(shí)會(huì)使用此變量。如果某個(gè)索引的差異度比較低(只有很少量的唯一值),那么優(yōu)化器可能會(huì)認(rèn)為在執(zhí)行鍵查找操作時(shí)需要進(jìn)行多次查找,從而會(huì)采用全表掃描的方式來代替。把此變量設(shè)置成某個(gè)小一點(diǎn)的值,則會(huì)使優(yōu)化器認(rèn)為在執(zhí)行鍵查找時(shí)最多只需要指定數(shù)量的索引尋找,從而使其更傾向于選擇使用索引,而不會(huì)執(zhí)行全表掃描。 max_sort_length(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 使用每個(gè)數(shù)據(jù)值的前max_sort_length個(gè)字節(jié)來進(jìn)行排序。默認(rèn)值為1024。如果被排序值在這么多的字節(jié)內(nèi)是唯一的,那么將此變量設(shè)置為更小一點(diǎn)的值可以獲得更少的比較次數(shù),同時(shí)也不會(huì)損失精確到。反之,如果被排序值在這么多的字節(jié)內(nèi)不是唯一的,那么增加這個(gè)值可以獲得更好的區(qū)分效果。 max_sp_recursion_depth(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是每個(gè)存儲(chǔ)過程的最大遞歸深度。默認(rèn)值為0(不允許遞歸),最大值為255。 max_tmp_tables(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量未被使用。 max_user_connections(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是每個(gè)賬戶同時(shí)進(jìn)行連接的客戶端最大個(gè)數(shù)。默認(rèn)值為0,表示“無限制”。兵法連接數(shù)還會(huì)受到max_connections變量的全局限制。 此變量的會(huì)話值是只讀的。它的會(huì)話值與全局值是相等的,除非賬戶在user表里的行擁有一個(gè)非零的MAX_USER_CONNECTIONS值。此時(shí),該會(huì)話值將從賬戶的行里獲得。 如果需要為某個(gè)特定的賬戶指定連接限制,可以使用GRANT語句。 max_write_lock_count(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 在對(duì)某個(gè)表使用了max_write_lock_count個(gè)寫鎖定之后,對(duì)于那些正在等待獲得該表讀鎖的語句,服務(wù)器將適當(dāng)提升它們的優(yōu)先級(jí)。 metadata_locks_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是服務(wù)器為元數(shù)據(jù)鎖所使用的那個(gè)緩存的大小。此變量是在MySQL 5.5.19里引入的。 min_examined_row_limit(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 一個(gè)查詢至少需要檢查min_examined_row_limit個(gè)行才被允許記錄到慢查詢?nèi)罩尽DJ(rèn)值為0。 myisam_data_pointer_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是MyISAM索引文件的行指針的字節(jié)大小。此變量的取值范圍是2~7,默認(rèn)為6。對(duì)于個(gè)別的表,這個(gè)指針大小會(huì)受到指定的那個(gè)MAX_ROWS表選項(xiàng)的影響。 myisam_max_sort_file_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 對(duì)于REPAIR TABLE、ALTER TABLE或LOAD DATA等語句,在對(duì)MyISAM表進(jìn)行重建時(shí),既可以使用一個(gè)臨時(shí)文件,頁可以使用鍵緩存。具體使用哪一種方法由這個(gè)變量的值來決定。如果臨時(shí)文件的大小可能會(huì)大于這個(gè)值,則需要使用鍵緩存。 myisam_mmap_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的的壓縮收的MyISAM表文件在進(jìn)行內(nèi)存映射時(shí)使用的最大內(nèi)存量。此變量是在MySQL 5.5.1里引入的。 myisam_recover_options(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是自動(dòng)修復(fù)MyISAM表時(shí)使用的模式。如果啟用它,那么當(dāng)服務(wù)器打開某個(gè)MyISAM表時(shí),如果該表被標(biāo)記為崩潰或者在上次使用時(shí)未正確關(guān)閉,那么它會(huì)嘗試修復(fù)該表。這個(gè)變量的值應(yīng)該為一個(gè)以逗號(hào)分隔的列表,其中可以帶有這樣一些選項(xiàng):BACKUP(如果修復(fù)操作會(huì)更改這個(gè)表,則先為它創(chuàng)建一個(gè)備份)、FORCE(即使丟失了多行數(shù)據(jù)也要強(qiáng)制進(jìn)行恢復(fù))、QUICK(快速恢復(fù))、DEFAULT(在恢復(fù)時(shí)不進(jìn)行任何其他特殊的處理)或者OFF(不進(jìn)行恢復(fù);這是默認(rèn)值)。 如果在運(yùn)行服務(wù)器時(shí)啟用了系統(tǒng)變量delay_key_write,或者對(duì)單個(gè)MyISAM表進(jìn)行了配置,啟用了延遲索引寫入功能,那么啟用表的自動(dòng)修復(fù)功能是種不錯(cuò)的做法。 myisam_repair_threads(啟動(dòng):直接設(shè)置:作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是在修復(fù)操作過程中用來創(chuàng)建MyISAM表使用的線程數(shù)。默認(rèn)值為1,表示的是使用單個(gè)線程進(jìn)行修復(fù)。將此變量的值設(shè)置為大于1,實(shí)現(xiàn)多線程修復(fù)——此功能仍處于體驗(yàn)階段。 myisam_sort_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 在執(zhí)行類似ALTER TABLE、CREATE INDEX和REPAIR TABLE這樣的操作期間,需要分配緩沖區(qū),以便對(duì)MyISAM表的索引進(jìn)行排序。此變量指定的便是該緩沖區(qū)的大小。 myisam_stats_method(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量表示的是,服務(wù)器在為MyISAM表通緝其索引鍵的分布概率時(shí),應(yīng)該把NULL值視為相同,還是視為不同。可設(shè)置的值包括有:nulls_equal(所有的NULL值在同一個(gè)組里)、nulls_unequal(每個(gè)NULL值單獨(dú)成為一組)或nulls_ignored(忽略NULL值)。 myisam_use_mmap(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是服務(wù)器在讀寫MyISAM表時(shí)是否需要使用內(nèi)存映射。默認(rèn)值為OFF。 named_pipe(啟動(dòng):直接設(shè)置) 它指的是服務(wù)器是否允許客戶端使用命名管道連接。只有Windows支持這種連接方式。默認(rèn)值為OFF。 net_buffer_length(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是服務(wù)器與客戶端程序進(jìn)行通信時(shí)使用的連接和結(jié)果緩沖區(qū)的初始大小。此緩沖區(qū)可以擴(kuò)展到max_allowed_packet個(gè)字節(jié)大小。此變量的取值范圍是1KB~1MB;默認(rèn)為16KB。它的會(huì)話值是只讀的。 net_read_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是在連接出現(xiàn)超時(shí)之前等待客戶端發(fā)送數(shù)據(jù)的秒數(shù)。 net_retry_count(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是中斷的讀取操作被重試的次數(shù)。 net_write_count(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是在連接出現(xiàn)超時(shí)之前將數(shù)據(jù)寫入客戶端所需要等待的秒數(shù)。 new(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量未被使用。 old(啟動(dòng):直接設(shè)置;作用范圍:全局) 它是一個(gè)用于解決兼容問題的變量,可以啟用某些較舊的行為特性。目前,它會(huì)導(dǎo)致索引提示無法 應(yīng)用到ORDER BY或GROUP BY字句。 old_alter_table(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 對(duì)于某些ALTER TABLE操作(在MySQL 5.0里,它們會(huì)需要表的臨時(shí)副本),當(dāng)前服務(wù)器并不需要臨時(shí)副本。啟用此變量可以讓服務(wù)器使用臨時(shí)副本。 old_passwords(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 從MySQL 4.1版開始,MySQL服務(wù)器開始支持一種較以前更為安全的密碼散列方法。仍然支持那些擁有舊風(fēng)格散列密碼的已有賬戶,但是默認(rèn)情況下此變量是禁用的,并且新的密碼會(huì)使用新的散列方法。啟用此變量可以是密碼散列操作使用4.1版本之前的舊方法。這個(gè)變量可能會(huì)對(duì)服務(wù)器降級(jí)或?qū)①~戶移動(dòng)到舊服務(wù)器有好處。 open_files_limit(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量值的是MySQL服務(wù)器試圖保留的文件描述符的個(gè)數(shù)。如果在服務(wù)器啟動(dòng)時(shí)將此變量設(shè)置為一個(gè)非零值,但是發(fā)現(xiàn)服務(wù)器顯示的實(shí)際值卻小于指定值,那么該實(shí)際值表示的是操作系統(tǒng)所允許的文件描述符的最大數(shù)。(如果服務(wù)器顯示的值為0,則表示操作系統(tǒng)不允許mysqld更改文件描述符的個(gè)數(shù)。)如果在服務(wù)器啟動(dòng)時(shí)沒有設(shè)置此變量或是將其設(shè)置為0,那么MySQL服務(wù)器會(huì)把max_connections X 5和max_connections + table_open_cache X 2這兩者當(dāng)中較大的那個(gè)數(shù)作為保留的文件描述符個(gè)數(shù)。open_files_limit變量獨(dú)立地控制著文件描述符的分配,與innodb_open_files變量控制的文件描述符無關(guān)。 optimizer_prune_level(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 查詢優(yōu)化器將分析多個(gè)執(zhí)行計(jì)劃并從中選出一個(gè)最佳的。此變量決定著優(yōu)化器如何處理中間計(jì)劃。如果此變量的值是1(默認(rèn)值),你怎么優(yōu)化器將之對(duì)各候選計(jì)劃將要檢查的行個(gè)數(shù)進(jìn)行估算,并根據(jù)估算結(jié)果丟棄中間計(jì)劃。如果此變量被設(shè)置為0,則優(yōu)化器將在所有計(jì)劃中執(zhí)行窮舉搜索。 optimizer_search_depth(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量控制著查詢優(yōu)化器搜索執(zhí)行計(jì)劃的深度。如果此變量的值是0,則優(yōu)化器將自動(dòng)選擇一個(gè)合理的深度值。默認(rèn)行為是執(zhí)行窮舉搜索。 optimizer_switch(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量控制的是可以被關(guān)閉或打開的優(yōu)化器策略。其值為一個(gè)以逗號(hào)隔開的flag=value設(shè)置列表,其中,value的值可以為on或off。你頁可以將標(biāo)志設(shè)置為default,以表示不管其默認(rèn)值為何值都需要返回它;或者將optimizer_switch自己設(shè)置為default,將所有的標(biāo)志都恢復(fù)成默認(rèn)值。對(duì)于各種策略的描述請(qǐng)參考MySQL參考手冊(cè)。 optimizer_trace_xxx(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話) 這些以optimizer_trace作為開頭的系統(tǒng)變量主要用于跟蹤查詢優(yōu)化器的內(nèi)部操作。這些變量是在MySQL 5.6.3里引入的。 performance_schema_xxx 這些以performance_schema作為開頭的系統(tǒng)變量主要是與搜索和分析服務(wù)器性能數(shù)據(jù)所使用的那個(gè)Performance Schema有關(guān)。更多信息請(qǐng)參考MySQL參考手冊(cè)。 pid_file(啟動(dòng):直接設(shè)置;作用范圍:全局) 在mysqld啟動(dòng)時(shí),它會(huì)將其進(jìn)程ID(即PID)寫入一個(gè)文件里。此變量指定的是哪個(gè)PID文件的路徑名。此文件可能被其他進(jìn)程用于確定服務(wù)器的進(jìn)程編號(hào),通常是用于向服務(wù)器發(fā)送信號(hào)。例如,當(dāng)mysql.server向服務(wù)器發(fā)送關(guān)閉信號(hào)時(shí),會(huì)讀取這個(gè)文件。如果其文件名是以相對(duì)路徑形式給出的,服務(wù)器會(huì)將它解釋為相對(duì)于數(shù)據(jù)目錄。默認(rèn)為host_name.pid。 plugin_dir(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是存放插件的那個(gè)目錄的路徑名。 port(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是服務(wù)器用來監(jiān)聽客戶端連接的TCP/IP端口號(hào)。 preload_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量決定著MySQL服務(wù)器在使用LOAD INDEX語句預(yù)加載有關(guān)索引時(shí)會(huì)分配一個(gè)多大的緩沖區(qū)。 protocol_version(作用范圍:全局) 服務(wù)器所使用的客戶端/服務(wù)器協(xié)議的版本號(hào)。 proxy_user(作用范圍:全局) 這是一個(gè)只讀的會(huì)話變量。在啟用了代理功能時(shí),它表示的是代理用戶;否則為NULL。此變量是在MySQL 5.5.7里引入的。 pseudo_thread_id(作用范圍:會(huì)話;動(dòng)態(tài)) 此變量?jī)H供MySQL服務(wù)器內(nèi)部使用。 query_alloc_block_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是在分析和執(zhí)行SQL語句時(shí)分配的臨時(shí)內(nèi)存塊大小。 query_cache_limit(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是查詢結(jié)果的最大緩存大小,超過這一大小的查詢結(jié)果將不會(huì)被緩存。默認(rèn)大小為1MB。 query_cache_min_res_unit(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是為把查詢結(jié)果存入查詢緩存里而分配的內(nèi)存塊大小。默認(rèn)大小為4KB。 query_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是用來緩存查詢結(jié)果的內(nèi)存大小。當(dāng)把此變量設(shè)置為0時(shí),即使query_cache_type不為OFF,也要禁用查詢緩存。反之,如果把此變量設(shè)置為一個(gè)非零值,那么即使query_cache_type的值為OFF,也要強(qiáng)行分配那么多的內(nèi)存。取值為1024的倍數(shù)。query_cache_type(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 當(dāng)query_cache_size的值大于0時(shí),它指的是查詢緩存的操作模式。下表列出了各種可能的取值。 模式 含義 0 不緩存查詢結(jié)果,也不檢索緩存結(jié)果 1 將可緩存的查詢緩存起來,那些以SELECT SQL_NO_CACHE作為開頭的查詢除外 2 根據(jù)需要只將那些以SELECT SQL_CACHE作為開頭的可緩存查詢緩存起來 如果使用SET語句來設(shè)置query_cache_type變量,那么符號(hào)值OFF、ON和DEMAND分別對(duì)應(yīng)模式0、模式1和模式2. query_cache_wlock_invalidate(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 當(dāng)此變量為0(默認(rèn)值)時(shí),即使某個(gè)客戶對(duì)某個(gè)表進(jìn)行了WRITE鎖定,其客戶端也能檢索該表已被緩存的查詢結(jié)果。如果把此變量設(shè)置為1,那么在某個(gè)客戶端對(duì)某個(gè)表獲得WRITE所期間,該表已被緩存的查詢結(jié)果將變得不可用,其他客戶端必須等到該鎖被釋放。 query_prealloc_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是為分析和執(zhí)行SQL語句而分配的那個(gè)緩沖區(qū)的長(zhǎng)度。與那些由query_alloc_block_size變量控制的內(nèi)存分配塊不同,這個(gè)緩沖區(qū)在前后兩條語句之間不會(huì)被釋放。 rand_seed1和rand_seed2(作用范圍:會(huì)話;動(dòng)態(tài)) 它們是復(fù)制RAND()函數(shù)時(shí)內(nèi)部使用的只讀會(huì)話變量。 range_alloc_block_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是在進(jìn)行范圍優(yōu)化時(shí)分配的內(nèi)存的塊大小。 read_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是對(duì)表進(jìn)行順序掃描的那個(gè)線程所使用的緩存區(qū)的大小。緩沖區(qū)會(huì)根據(jù)每個(gè)客戶端的需要進(jìn)行分配。 read_only(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量控制的是從服務(wù)器是否會(huì)以只讀方式來處理客戶連接。默認(rèn)情況下,read_only的值為OFF,此時(shí),客戶端的更新都會(huì)以平常的方式(即它們都有權(quán)限這樣做)被接收。如果把此變量設(shè)置為ON,那么只有從主服務(wù)器那里接收到的語句(對(duì)于從服務(wù)器)或者擁有SUPER權(quán)限的客戶端所執(zhí)行的語句才能執(zhí)行更新操作;SET PASSWORD要求SUPER權(quán)限。read_only不會(huì)應(yīng)用于TEMPORARY表。 如果你明確地?fù)碛斜礞i或者還有尚未執(zhí)行完畢的事務(wù),那么你不能啟用此變量。在其他客戶端擁有表鎖或者還有尚未執(zhí)行完畢的事務(wù)時(shí),如果你試圖激活此變量,那么你的請(qǐng)求將被阻塞,一直到這些鎖被釋放或是事務(wù)執(zhí)行完畢位置。當(dāng)你的請(qǐng)求被阻塞時(shí),如果其他客戶端試圖要獲得新的表鎖或是試圖開始新的事務(wù),那么它們也將被阻塞。這些阻塞條件對(duì)FLUSH TABLES WITH READ LOCK語句沒有作用,因?yàn)樗@得的是全局讀鎖,不是表鎖。 rand_rnd_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是在對(duì)行進(jìn)行排序之后,順序讀取各行時(shí)使用的那個(gè)緩沖區(qū)的大小。緩沖區(qū)會(huì)根據(jù)每個(gè)客戶端的需要進(jìn)行分配。 relay_log(啟動(dòng):直接設(shè)置;作用范圍:全局) 中繼日志文件的名字。 relay_log_basename(作用范圍:全局) 中繼日志文件的完整路徑名。此變量是在MySQL 5.6.2里引入的。 relay_log_index(作用范圍:全局) 中繼日志索引文件的名字。 relay_log_info_file(啟動(dòng):直接設(shè)置;作用范圍:全局) 中繼日志信息文件的名字;默認(rèn)為relay-log.info。 relay_log_info_repository(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量表示的是,從服務(wù)器是將中繼日志信息寫入文件,還是寫入表。如果該值為FILE(默認(rèn)值),那么從服務(wù)器會(huì)把日志記錄到—relay-log-info-file選項(xiàng)所指定的文件里。如果該值為TABLE,那么服務(wù)器會(huì)把日志記錄到mysql.slave_relay_log_info_file表里。此變量的在MySQL 5.6.2里引入的。 relay_log_purge(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果此變量被設(shè)置為1(默認(rèn)值),從服務(wù)器會(huì)在用完一個(gè)中繼日志文件之后立刻刪除它。如果把此變量設(shè)置為0,中繼日志文件將不會(huì)被自動(dòng)刪除。 relay_log_recovery(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量在從服務(wù)器崩潰之后非常游泳。在啟動(dòng)時(shí)啟用它,可以使從服務(wù)器刪除所有的還未處理的中繼日志,并再次從主服務(wù)器獲取它們。此變量默認(rèn)是禁用的。 relay_log_space_limit(啟動(dòng):直接設(shè)置;作用范圍:全局) 全體中繼日志文件的最大允許大小。當(dāng)達(dá)到這個(gè)限制時(shí),從服務(wù)器的I/O線程會(huì)等待SQL線程處理更多的事件,并通過刪除日志文件的方式釋放空間。 report_host、report_password、report_port、report_user(作用范圍:全局) 在從復(fù)制服務(wù)器上,可以設(shè)置這些變量,以表示從服務(wù)器進(jìn)行連接時(shí)應(yīng)該報(bào)告給主服務(wù)器的那些值。它們不需要與從服務(wù)器在建立連接時(shí)實(shí)際使用的那些值相對(duì)應(yīng)。當(dāng)SHOW SLAVE HOSTS語句在主服務(wù)器上執(zhí)行時(shí),這些值會(huì)顯示在該語句的輸出里。只有在主服務(wù)器啟動(dòng)時(shí)帶有—show-slave-auth-info選項(xiàng),才會(huì)報(bào)告report_user和report_password的值。 secure_auth(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它表示的是,服務(wù)器是否只允許那些擁有MySQL 4.1里引入的密碼格式的用戶進(jìn)行連接。如果此變量被設(shè)置為OFF,那么服務(wù)器將允許那些使用4.1版本之前的就密碼格式的賬戶進(jìn)行連接。在MySQL 5.6.5之前,此變量的默認(rèn)值為OFF;之后的默認(rèn)值為ON。 secure_file_priv(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果把此變量設(shè)置為目錄路徑名,服務(wù)器將只允許LOAD DATA和SELECT … INTO OUTFILE語句以及LOAD_FILE()函數(shù)對(duì)該目錄的文件進(jìn)行操作。默認(rèn)情況下,此變量的值為空(沒有上述限制)。 server_id(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) MySQL服務(wù)器的復(fù)制ID編號(hào)。如果編號(hào)值為0,則表示該服務(wù)器不參與復(fù)制;否則,這個(gè)值必須是一個(gè)1~2 (32次方)-1的整數(shù)。每一個(gè)服務(wù)器的復(fù)制ID編號(hào)都必須是唯一的。 server_uuid(作用范圍:全局) 服務(wù)器自動(dòng)生成的UUID值。此變量是在MySQL 5.6.0里引入的。 shared_memory(啟動(dòng):直接設(shè)置) 它指的是服務(wù)器是否允許客戶端使用共享內(nèi)存連接。只有Windows支持這種連接方式。默認(rèn)值為OFF。 shared_memory_base_name(啟動(dòng):直接設(shè)置) 它指的是用來建立共享內(nèi)存連接的共享內(nèi)存的名字。默認(rèn)名字為MYSQL(區(qū)分大小寫)。 skip_external_locking(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是外部鎖定機(jī)制(即文件系統(tǒng)級(jí)的鎖定機(jī)制)是否被禁止。 skip_name_resolve(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量默認(rèn)是禁用的。啟用它之后,可以禁止主機(jī)名解析,并且在權(quán)限表里必須通過IP地址或使用localhost來指定這些主機(jī)。 skip_networking(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果禁用此變量(默認(rèn)值),則服務(wù)器允許使用TCP/IP連接。如果啟用它,則會(huì)禁用TCP/IP連接??蛻舳酥豢梢詮谋镜刂鳈C(jī)進(jìn)行連接,且必須使用非TCP/IP接口。Unix客戶端可使用Unix套接字文件。Windows客戶端可以使用共享內(nèi)存或命名管道(如果這些鏈接類型被棄用了的話)連接。 skip_show_databases(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果禁用此變量(默認(rèn)值),則有用戶都可以執(zhí)行SHOW DATABASES語句。如果用戶擁有SHOW DATABASE權(quán)限,則它可以看到所有的數(shù)據(jù)庫,否則,用戶只能看到它直接權(quán)限能夠訪問的那些數(shù)據(jù)庫。如果啟用此變量,則只有擁有SHOW DATABASE權(quán)限的用戶才能使用SHOW DATABASE語句,并且它會(huì)顯示所有的數(shù)據(jù)庫。 slave_allow_batching(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 啟用從服務(wù)器的批請(qǐng)求功能。它僅適用于MySQL集群。 slave_checkpoint_group(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了多線程從服務(wù)器執(zhí)行(請(qǐng)參考slave_parallel_threads),則此變量控制的是從服務(wù)器在獲得一個(gè)檢查點(diǎn)之前執(zhí)行的最大事務(wù)數(shù)。默認(rèn)值為512。允許的取值范圍為32~512KB。此變量是在MySQL 5.6.3里引入的。檢查點(diǎn)依賴于slave_checkpoint_group和slave_checkpoint_period;超過任何一個(gè)限制都會(huì)導(dǎo)致從服務(wù)器回到檢查點(diǎn),并重置與它們兩個(gè)關(guān)聯(lián)在一起的那些計(jì)數(shù)器。 slave_checkpoint_group(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了多線程從服務(wù)器執(zhí)行(請(qǐng)參考slave_parallel_threads),則此變量控制的是從服務(wù)器在獲得一個(gè)檢查點(diǎn)之前執(zhí)行的最大時(shí)間(單位為毫秒)。默認(rèn)值為300。允許的取值范圍為1~4GB。此變量是在MySQL 5.6.3里引入的。請(qǐng)參考slave_checkpoint_group。 slave_compressed_protocol(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量決定著是否要對(duì)從服務(wù)器和主服務(wù)器之間的通信進(jìn)行壓縮。這需要主、從服務(wù)器都支持使用壓縮協(xié)議才行。 slave_load_mode(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是從服務(wù)器的執(zhí)行模式,取值可以為STRICT(默認(rèn))或IDEMPOTENT。后面那個(gè)設(shè)置對(duì)于涉及循環(huán)或多個(gè)主服務(wù)器的復(fù)制拓?fù)淇赡芎苡杏茫捎糜诜乐钩霈F(xiàn)“鍵恢復(fù)”會(huì)“鍵未找到”的錯(cuò)誤。 slave_load_tmpdir(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果服務(wù)器是一個(gè)復(fù)制從服務(wù)器,那么它指的是用于處理LOAD DATA語句的那個(gè)目錄的路徑名。此變量的默認(rèn)值是系統(tǒng)變量他們怕敵人的值。 slave_max_allowed_packet(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 與max_allowed_packet類似,但它適用于從服務(wù)器的SQL線程和I/O線程。默認(rèn)大小為1GB。 slave_net_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是在連接出現(xiàn)超時(shí)之前等待主服務(wù)器發(fā)送數(shù)據(jù)的秒數(shù)。 slave_parallel_workers(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 在從服務(wù)器上,將此變量設(shè)置為大于0,以啟用多線程復(fù)制。通常情況下會(huì)執(zhí)行從從服務(wù)器上接收到的所有事件的那個(gè)SQL線程,實(shí)際上會(huì)變成執(zhí)行這些時(shí)間的那個(gè)工作線程slave_parallel_workers的坐標(biāo)。默認(rèn)值為0。允許的取值范圍為0~1024。此變量是在MySQL 5.6.3里引入的。 slave_pending_jobs_size_max(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了從服務(wù)器多線程執(zhí)行(請(qǐng)參考slave_parallel_threads),則此變量控制的是工作線程用于緩存未處理事件的最大內(nèi)存量。默認(rèn)大小為16MB。允許的取值范圍為1KB~18EB。此變量是在MySQL 5.6.3里引入的。 slave_skip_errors(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量用于指定一個(gè)錯(cuò)誤列表;在列表里的錯(cuò)誤出現(xiàn)時(shí),從服務(wù)器會(huì)忽略它們,而不是將復(fù)制過程掛起。(不過,與利用這個(gè)選項(xiàng)來忽略錯(cuò)誤的做法相比,還是找出問題的根源并徹底解決更好。)如果此變量的值為all,則會(huì)忽略所有的錯(cuò)誤。否則,此變量的值應(yīng)該是以逗號(hào)分隔的一個(gè)或者多個(gè)出錯(cuò)編號(hào)。 slave_sql_verify_checksum(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是從服務(wù)器的SQL線程是否應(yīng)該驗(yàn)證中繼日志里讀取到的事件的校驗(yàn)和。如果校驗(yàn)和錯(cuò)誤,復(fù)制過程會(huì)停止。默認(rèn)值為OFF。此變量是在MySQL 5.6.2里引入的。 slave_transaction_retries(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是從服務(wù)器重試失敗事務(wù)的次數(shù)。事務(wù)失敗的原因包括:死鎖或者已經(jīng)到達(dá)存儲(chǔ)引起的超時(shí)限制。默認(rèn)值為10。 slave_type_conversions(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 這個(gè)變量表示的是在從服務(wù)器上進(jìn)行基于行的復(fù)制時(shí)允許的各種類型轉(zhuǎn)換。默認(rèn)值為空串(即不允許轉(zhuǎn)換)。當(dāng)其值為非空時(shí),它應(yīng)該是一個(gè)以逗號(hào)分隔的值列表,其中的值為一個(gè)或多個(gè)ALL_LOSSY(允許丟失信息的轉(zhuǎn)換)或ALL_NON_LOSSY(允許那些不丟失信息的轉(zhuǎn)換)。此變量是在MySQL 5.5.3里引入的。 slow_launch_time(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是創(chuàng)建“慢”線程所占用的秒數(shù)。任何線程的創(chuàng)建時(shí)間超過這個(gè)值時(shí),都會(huì)導(dǎo)致狀態(tài)變量Slow_launch_threads的值加1。 slow_query_log(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它用于指定是否要啟用慢查詢?nèi)罩居涗?。如果要啟用,則log_output變量會(huì)控制日志的輸出目標(biāo)。 slow_query_log_file(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是慢查詢?nèi)罩疚募拿?。在啟用了FILE日志目標(biāo)時(shí),會(huì)用到它。它的默認(rèn)值是數(shù)據(jù)目錄里的HOSTNAME-slow.log文件,其中,HOSTNAME是服務(wù)器主機(jī)的名字。如果其文件名是以相對(duì)路徑形式給出的,則服務(wù)器會(huì)將它解釋為相對(duì)于數(shù)據(jù)目錄。 socket(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是Unix域套接字的路徑名或Windows中命名管道的名字。 sort_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 供那些用來完成排序操作(GROUP BY或ORDER BY)的線程使用的緩沖區(qū)的大小。如有必要,每個(gè)客戶端都能分配到一個(gè)這樣的緩沖區(qū)。一般來說,如果你有許多個(gè)客戶端會(huì)在同一時(shí)間進(jìn)行排序操作,就不應(yīng)該把這個(gè)值設(shè)置得很大(超過1MB)。 sql_auto_is_null(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 如果此變量設(shè)置為1,那么最近生成的AUTO_INCREMENT值可以選擇使用WHERE col_name IS NULL形式的子句來進(jìn)行查詢,其中,col_name是AUTO_INCREMENT列的名稱。有些ODBC程序會(huì)使用此功能。如果要禁用它,可以將此變量設(shè)置為0。默認(rèn)是0(在MySQL 5.5.3之前默認(rèn)為1)。 sql_big_selects(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 服務(wù)器會(huì)把此變量與系統(tǒng)變量max_join_size一起使用。如果sql_big_selects為1(默認(rèn)),服務(wù)器會(huì)接受那些返回任意大小結(jié)果集的查詢。如果sql_big_selects為0,服務(wù)器會(huì)拒絕那些由可能返回大量行的查詢。在這種情況下,執(zhí)行連接操作時(shí),會(huì)使用max_join_size的值:服務(wù)器會(huì)對(duì)它需要檢查的行組合數(shù)量進(jìn)行估算,如果該值超過了max_join_size的值,那么服務(wù)器將返回一個(gè)錯(cuò)誤,而不會(huì)執(zhí)行該查詢。 將max_join_size設(shè)置為DEFAULT以外的某個(gè)值,會(huì)自動(dòng)將sql_big_selects設(shè)置為0。 sql_buffer_result(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 將此變量設(shè)置為1,會(huì)導(dǎo)致服務(wù)器使用內(nèi)部臨時(shí)表來保存SELECT語句的結(jié)果。帶來的效果是,服務(wù)器可以快速地釋放由生成結(jié)果的那個(gè)表所占用的鎖。默認(rèn)值為0。 sql_log_bin(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 將這個(gè)變量的會(huì)話值設(shè)置為0或1,可以禁用或啟用當(dāng)前客戶端會(huì)話的二進(jìn)制日志記錄。在運(yùn)行時(shí),客戶端必須擁有SUPER權(quán)限才能更改這個(gè)變量,即使是更改其會(huì)話值也是如此。該變量只有在啟用二進(jìn)制日志記錄的情況下才會(huì)發(fā)揮作用。 sql_log_off(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 將這個(gè)變量的會(huì)話值設(shè)置為0或1,可以啟用或禁用當(dāng)前客戶端會(huì)話的普遍查詢?nèi)罩居涗?。在運(yùn)行時(shí),客戶端必須擁有SUPER權(quán)限才能更改這個(gè)變量,即使是更改其會(huì)話值也是如此。該變量只有在啟用普通查詢?nèi)罩居涗浀那闆r下才會(huì)發(fā)揮作用。 sql_mode(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 服務(wù)器的SQL模式。這個(gè)變量將改變MySQL服務(wù)器的某些行為,使它更符合SQL語言標(biāo)準(zhǔn)或是與其他數(shù)據(jù)庫服務(wù)器或老版本的MySQL服務(wù)器保持兼容。此變量的值應(yīng)該是一個(gè)空串(這將清除以前設(shè)置的SQL模式)或者是由下面將要介紹的一個(gè)或多個(gè)模式值以逗號(hào)分隔而構(gòu)成的一系列值。自MySQL 5.6.6起,其默認(rèn)值為NO_ENGINE_SUBSTITUTION;而對(duì)于之前的版本,其值為空串。有些模式值很簡(jiǎn)單,它們可以單獨(dú)使用以啟用某種特定的行為。其他的則是復(fù)合模式,每種復(fù)合SQL模式涵蓋多種簡(jiǎn)單SQL模式,這使得用于可以方便地一次設(shè)置多種SQL模式。模式值不區(qū)分大小寫。 術(shù)語“嚴(yán)格模式“(strict mode)指的是這樣一種sql_mode設(shè)置:它啟用了STRICT_TRANS_TABLES和STRICT_ALL_TABLES,以便讓服務(wù)器在對(duì)數(shù)據(jù)進(jìn)行檢查時(shí)更加嚴(yán)格。 下面列出了一些簡(jiǎn)單的SQL模式值。 n ALLOW_INVALID_DATES 在嚴(yán)格模式里,禁止對(duì)DATE和DATETIME值進(jìn)行全面的日期有效性檢查。唯一的要求是月份的取值范圍必須為1~12,日期的取值范圍必須為1到31。但是TIMASTAMP值是個(gè)例外:不管是否啟用了這個(gè)SQL模式,它們都必須是有效的。 n ANSI_QUOTES 把雙引號(hào)自負(fù)解釋為供標(biāo)識(shí)符(如數(shù)據(jù)庫名、表名和列名)使用的引號(hào)字符,而不是供字符串使用的引號(hào)字符。(不管這個(gè)模式是否啟用,都可以用反引號(hào)來當(dāng)作名字的引號(hào)字符。) n ERROR_FOR_DIVISION_BY_ZERO 對(duì)于行插入或修改操作,即使是在嚴(yán)格模式下,以零為除數(shù)的出發(fā)(或求余數(shù))運(yùn)算得到的結(jié)果通常是NULL,且不會(huì)返回任何警告信息。啟用ERROR_FOR_DIVISION_BY_ZERO模式將更改這種行為。如果沒有啟用嚴(yán)格模式,那么以零為除數(shù)時(shí)結(jié)果將為NULL值,但會(huì)返回一條警告信息;如果啟用了嚴(yán)格模式,那么在執(zhí)行INSERT或UPDATE語句期間遇到以零為除數(shù)的情況時(shí),將產(chǎn)生一個(gè)錯(cuò)誤,并且該語句會(huì)失敗。如果想要禁止在插入或更新是出現(xiàn)錯(cuò)誤,并且產(chǎn)生一個(gè)NULL值和警告信息,可以使用INSERT IGNORE或UPDATE IGNORE。 n HIGH_NOT_PRECEDENCE 此模式可以更改NOT操作符的優(yōu)先級(jí),使其與!操作符的優(yōu)先級(jí)相同。 n IGNORE_SPACE 讓服務(wù)器忽略內(nèi)建函數(shù)名與引入?yún)?shù)表的那個(gè)左括號(hào)“(”之間的空格。默認(rèn)情況下,那個(gè)左括號(hào)必須緊跟在函數(shù)名的后面,其中間不允許有間隔。此模式會(huì)使函數(shù)名被當(dāng)作保留字。 n NO_AUTO_CREATE_USER 防止GRANT語句創(chuàng)建不安全的新賬戶。也就是說,如果某個(gè)賬戶不存在,那么GRANT會(huì)執(zhí)行失敗,并且不會(huì)創(chuàng)建賬戶,除非該語句包含一個(gè)指定有非空密碼的IDENTIFIED BY子句,或者包含有一個(gè)指定身份驗(yàn)證插件的IDENTIFIED WITH子句。 n NO_AUTO_VALUE_ON_ZERO 通常情況下,把0插入一個(gè)AUTO_INCREMENT列,等效于插入NULL值:MySQL將自動(dòng)生成下一個(gè)序列編號(hào),并把它保存在該列里。如果啟用了此模式,那么往AUTO_INCREMENT列里插入0將會(huì)把數(shù)字0存入該列。 n NO_BACKSLASH_ESCAPES 如果啟用了這個(gè)模式,那么反斜線字符(“\”)將被當(dāng)作一個(gè)沒有特殊含義的普通字符,而不是當(dāng)作一個(gè)字符串的轉(zhuǎn)義字符。 n NO_DIR_IN_CREATE 忽略CREATE TABLE和ALTER TABLE語句時(shí),該模式所指定的存儲(chǔ)引擎不可用——此時(shí),這個(gè)模式便決定著服務(wù)器將如何處理它們。如果啟用了此模式,那么會(huì)出現(xiàn)一個(gè)錯(cuò)誤,并且該表不會(huì)被創(chuàng)建(或更改)。如果禁用了此模式,那么允許替換為默認(rèn)的存儲(chǔ)引擎。 n NO_ZERO_DATE 在嚴(yán)格模式下,拒絕接收’0000-00-00’作為一個(gè)有效日期值通常情況下,MySQL允許存儲(chǔ)“零”日期值。這個(gè)模式可以通過使用INSERT IGNORE語句代替INSERT語句的辦法來覆蓋。 n NO_ZERO_IN_DATE 在嚴(yán)格模式下,拒絕接收月或日部分是零的日期值。(年份是零的日期值是允許的。)通常情況下,MySQL允許存儲(chǔ)這樣的日期值。在非嚴(yán)格模式下,或者如果用戶發(fā)出的是INSERT IGNORE語句,MySQL將把這樣的日期值保存為’0000-00-00’。 n ONLY_FULL_GROUP_BY 通常情況下,MySQL允許SELECT語句的輸出列列表里帶有非聚合型列,或者使用不是列在GROUP BY子句里的HAVING子句。例如: select a,b,count(*) from t group by a; ONLY_FULL_GROUP_BY標(biāo)志要求非聚合型輸出列(或HAVING列)都被列在GROUP BY里: select a,b,count(*) from t group by a,b; n PAD_CHAR_TO_FULL_LENGTH 通常情況下,服務(wù)器在檢索CHAR列值時(shí)會(huì)刪除其尾部空格。如果啟用了這個(gè)模式,MySQL服務(wù)器將禁止刪除CHAR列的尾部空格,這樣,檢索到的值的長(zhǎng)度就等于列的定義寬度。 n PIPES_AS_CONCAT 如果啟用了這個(gè)模式,那么||將被解釋為字符串連接操作符,而不會(huì)解釋為邏輯或。 n REAL_AS_FLOAT 如果啟用了這個(gè)模式,那么數(shù)據(jù)類型REAL將于FLOAT同義,而不是等同于DOUBLE。 n STRICT_ALL_TABLES 如果啟用了這個(gè)模式,那么所有的存儲(chǔ)引擎都將對(duì)輸入數(shù)據(jù)做更嚴(yán)格的檢查,這將導(dǎo)致MySQL拒絕接收絕大多數(shù)非法值。如果想要更加嚴(yán)格,可以使用TRADITIONAL模式。 n STRICT_TRANS_TABLES 如果啟用了這個(gè)模式,那么事務(wù)型存儲(chǔ)引擎將輸入數(shù)據(jù)值做嚴(yán)格的檢查,這將導(dǎo)致MySQL拒絕接受絕大多數(shù)非法值。在此基礎(chǔ)上,只要有可能(例如,遇到插入單個(gè)行的INSERT語句),非事務(wù)型存儲(chǔ)引擎也將對(duì)輸入數(shù)據(jù)做嚴(yán)格的檢查。如果想要更加嚴(yán)格,可以使用TRADITIONAL模式。 下表列出的是復(fù)合SQL模式,以及每種復(fù)合模式所包含的模式內(nèi)容。 復(fù)合模式 組成模式 ANSI ANSI_QUOTES, IGNORE_SPACE, PIPES_AS_CONCAT, REAL_AS_FLOAT DB2 ANSI_QUOTES, IGNORE_SPACE, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OOPTIONS, PEPES_AS_CONCAT MAXDB ANSI_QUOTES, IGNORE_SPACE, NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, PEPES_AS_CONCAT MSSQL ANSI_QUOTES, IGNORE_SPACE, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OOPTIONS, PEPES_AS_CONCAT MYSQL323 HIGH_NOT_PRECEDENCE, NO_FIELD_OPTIONS MYSQL40 HIGH_NOT_PRECEDENCE, NO_FIELD_OPTIONS ORACLE ANSI_QUOTES, IGNORE_SPACE, NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, PEPES_AS_CONCAT POSTGRESQL ANSI_QUOTES, IGNORE_SPACE, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OOPTIONS, PEPES_AS_CONCAT TRADITIONAL ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER, NO_ZERO_DATE, NO_ZERO_IN_DATE, STRICT_ALL_TABLES, STRICT_TRANS_TABLES 之所以稱之為TRADITIONAL模式,是因?yàn)樗鼏⒂眠@樣的模式——它們使得MySQL在處理輸入值時(shí),可以表現(xiàn)得像那些會(huì)拒絕無效數(shù)據(jù)的傳統(tǒng)數(shù)據(jù)庫一樣。它有點(diǎn)像嚴(yán)格模式,但是對(duì)于更加嚴(yán)格的檢查又包含了幾個(gè)附加的約束。 sql_log_off(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 將此變量設(shè)置為0或1(默認(rèn)值),可以控制服務(wù)器是禁止還是記錄Note級(jí)的警告。 sql_quote_show_create(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量控制的是,在語句SHOW CREATE TABLE和SHOW CREATE DATABASE的輸出結(jié)果里是否需要標(biāo)識(shí)符(數(shù)據(jù)庫名、表名、列名和索引名)用引號(hào)引起來。默認(rèn)為1(即需要使用引號(hào))。將此變量設(shè)置為0,可以不要求使用引號(hào)。當(dāng)生產(chǎn)用于其他數(shù)據(jù)庫服務(wù)器的CREATE TABLE語句時(shí),不使用引號(hào)會(huì)帶來好處。如果禁用引號(hào),則一定要確保表沒有使用保留字或者沒有包含特殊字符。 如果禁用了SQL模式ANSI_QUOTES,引用標(biāo)識(shí)符將使用反撇號(hào)(`);否則,會(huì)使用雙引號(hào)(”)。 sql_safe_updates(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 如果將此變量設(shè)置為1,那么只有這些被修改的行是通過鍵值來確定的,或者使用了LIMIT子句,服務(wù)器才會(huì)接受UPDATE和DELETE。當(dāng)使用默認(rèn)值0時(shí),無這種限制。 sql_select_limit(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量指定的是SELECT語句返回的最大行數(shù)。如果顯式地給出了LIMIT子句,那么該子句的優(yōu)先級(jí)要高于此變量。默認(rèn)值為每個(gè)表所能容納的最大行數(shù)。如果你曾經(jīng)更改過此變量的值,可以使用之DEFAULT來恢復(fù)其默認(rèn)值。 對(duì)于存儲(chǔ)例程或那些不會(huì)把行返回給客戶端的SELECT操作(如子查詢、INSERT INTO … SELECT和CREATE TABLE … SELECT語句),此變量沒有任何作用。 sql_slave_skip_counter(作用范圍:全局;動(dòng)態(tài)) 擁有SUPER權(quán)限的用戶可以把此變量當(dāng)作GLOBAL變量設(shè)置為n,告訴復(fù)制從服務(wù)器跳過接下來從其主服務(wù)器接收到的n個(gè)時(shí)間。如果最后的位置位于一組事件(如某個(gè)事務(wù)的一組事件)的中間,那么從服務(wù)器還會(huì)跳過組里的其余時(shí)間。 sql_warnings(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 如果將此變量設(shè)置為1,那么MySQL會(huì)報(bào)告警告統(tǒng)計(jì)信息(即使對(duì)于單個(gè)行的插入操作也會(huì)報(bào)告)。對(duì)于默認(rèn)值0,則只會(huì)針對(duì)插入多個(gè)行的INSERT語句報(bào)告警告統(tǒng)計(jì)信息。 ssl_xxx ssl_xxx變量表示的是與服務(wù)器啟動(dòng)時(shí)給定的各個(gè)—ssl-xxx選項(xiàng)相對(duì)應(yīng)的值。(例如,ssl_ca表示的是—ssl-ca選項(xiàng)的值。)如果在啟動(dòng)服務(wù)器時(shí)沒有給定—ssl-xxx選項(xiàng),那么相應(yīng)的ssl_xxx變量的值將為空串。如果不支持使用SSL,則這些變量的值都將是NULL。 storage_engine(作用范圍:全局、會(huì)話;動(dòng)態(tài)) 自MySQL 5.5.3起,它已被棄用。請(qǐng)使用default_storage_engine來代替。 stored_program_cache(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是服務(wù)器會(huì)為每個(gè)連接緩存多少存儲(chǔ)例程。默認(rèn)值為256。此變量是在MySQL 5.5.21里引入的。 sync_binlog(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 當(dāng)把此變量設(shè)置為0時(shí)(默認(rèn)值),服務(wù)器不會(huì)把二進(jìn)制日志刷新到磁盤。當(dāng)此變量被設(shè)置為一個(gè)正整數(shù)n的時(shí)候,服務(wù)器每對(duì)二進(jìn)制日志進(jìn)行n次寫操作就會(huì)把日志刷新到磁盤。在這種情況下,系統(tǒng)發(fā)生崩潰時(shí),此變量的值越小,有關(guān)數(shù)據(jù)的安全系數(shù)越大,但這同時(shí)對(duì)系統(tǒng)性能的負(fù)面影響也越大。 sync_frm(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 當(dāng)啟動(dòng)此變量時(shí)(默認(rèn)值),服務(wù)器會(huì)在數(shù)據(jù)創(chuàng)建時(shí)將每個(gè)非臨時(shí)表的.frm文件刷新到磁盤。 sync_master_info(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 對(duì)于從服務(wù)器,如果這個(gè)變量為0(默認(rèn)值),那么從服務(wù)器不會(huì)強(qiáng)制將它的master.info文件同步到磁盤。實(shí)際上,正常的文件系統(tǒng)會(huì)執(zhí)行刷新操作。如果該值大于0,那么從服務(wù)器會(huì)在每個(gè)事件組處理完之后將該文件同步到磁盤。 sync_relay_log(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 對(duì)于從服務(wù)器,如果這個(gè)變量為0(默認(rèn)值),那么從服務(wù)器不會(huì)強(qiáng)制將其中繼日志同步到磁盤。實(shí)際上,正常的文件系統(tǒng)會(huì)執(zhí)行刷新操作。如果該值大于0,那么從服務(wù)器會(huì)在每個(gè)寫入組處理完之后將中繼日志同步到磁盤。如果啟用了自動(dòng)提交,那么每條語句都會(huì)發(fā)生一次寫入操作;否則,是每個(gè)事務(wù)發(fā)生一次寫入操作。 sync_relay_log_info(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量與sync_master_info很像,不同之處在于它處理的是relay-log.info文件。 system_time_zone(作用范圍:全局) 服務(wù)器的系統(tǒng)時(shí)區(qū)。服務(wù)器在它啟動(dòng)時(shí)會(huì)嘗試通過詢問操作系統(tǒng)的辦法來確定此變量的值。要想顯式地設(shè)置這個(gè)值,可以設(shè)置TZ環(huán)境變量,或是為mysqld_safe腳本指定—timezone選項(xiàng)。 table_definition_cache(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是服務(wù)器在其定義緩存里可以存放的表定義(來自.frm文件)個(gè)數(shù)。 table_open_cache(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是服務(wù)器能夠同時(shí)打開的表的最大個(gè)數(shù)。 table_open_cache_instances(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是用于對(duì)打開的表緩存進(jìn)行分區(qū)的實(shí)例數(shù)量。默認(rèn)為1(即不分區(qū))。在高負(fù)荷情況下,將緩存分開可能會(huì)減少會(huì)話之間的資源競(jìng)爭(zhēng)。此變量是在MySQL 5.6.6里引入的。 thread_cache_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是線程緩存所能容納的最大線程數(shù)。當(dāng)客戶端斷開與MySQL服務(wù)器的連接時(shí),如果這個(gè)緩存還沒有滿,那么客戶端曾經(jīng)使用過的線程就將被放入這個(gè)緩存。只要這個(gè)緩存里還有線程,新建立的連接就會(huì)重復(fù)使用它們而不是去創(chuàng)建新的線程。當(dāng)MySQL服務(wù)器為每個(gè)當(dāng)前連接的客戶端分別使用一個(gè)線程的時(shí)候,就要用到線程緩存。 thread_concurrency(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量已過時(shí)。 thread_handling(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是服務(wù)器用于處理客戶端連接的線程模型。此變量的值可以為no-threads(單個(gè)連接線程)或one-thread-per-connection(每個(gè)當(dāng)前連接的客戶端使用一個(gè)線程)。默認(rèn)為one-thread-per-connection。 thread_stack(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是每個(gè)線程的棧大小。 time_format(作用范圍:全局) 此變量未被使用。 time_zone(啟動(dòng):使用—default-time-zone選項(xiàng);作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是MySQL服務(wù)器的當(dāng)前時(shí)區(qū)。如果此變量的值為SYSTEM,則MySQL服務(wù)器將使用system_time_zone變量的值作為它的當(dāng)前時(shí)區(qū)??蛻舳丝梢酝ㄟ^修改此變量的會(huì)話值,設(shè)置其自己會(huì)話的時(shí)區(qū)。 timestamp(作用范圍:會(huì)話;動(dòng)態(tài)) 通過設(shè)置此變量,可以指定當(dāng)前會(huì)話的TIMESTAMP值。它用于二進(jìn)制日志的處理。timestamp的值會(huì)對(duì)NOW()的返回值產(chǎn)生影響,但是不會(huì)影響到SYSDATE()的返回值。 tmp_table_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是MySQL內(nèi)部使用的各種臨時(shí)表(即服務(wù)器在處理SQL語句的過程中自動(dòng)創(chuàng)建的表)的最大允許長(zhǎng)度。如果某個(gè)臨時(shí)表的長(zhǎng)度超過了max_heap_table_size和tmp_table_size當(dāng)中較小的那個(gè)值,那么服務(wù)器會(huì)把它從內(nèi)部?jī)?nèi)存表轉(zhuǎn)換為MyISAM表,保存到磁盤上。如果有足夠多的內(nèi)存的話,那么增大此變量的值可以使服務(wù)器在內(nèi)存里維護(hù)更大的臨時(shí)表,而不必把它們轉(zhuǎn)換為磁盤文件格式。 tmpdir(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是服務(wù)器用于創(chuàng)建臨時(shí)文件的那個(gè)目錄的路徑名。此變量的值可以是一個(gè)目錄列表,它們將輪換著使用。在Unix里,目錄名之間使用冒號(hào)(:)隔開;在Windows里,目錄名之間需要用分號(hào)(;)隔開。 transaction_alloc_block_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是為處理這樣一些語句而分配的臨時(shí)內(nèi)存的塊大小:在事務(wù)提交之時(shí),在將事務(wù)寫入二進(jìn)制日志之前,需要存儲(chǔ)為事務(wù)的一部分的語句。 transaction_prealloc_size(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是為處理構(gòu)成某個(gè)事務(wù)的語句而分配的那個(gè)緩沖區(qū)的大小。與那些由transaction_alloc_block_size變量控制的內(nèi)存分配塊不同,這個(gè)緩沖區(qū)在最后兩條語句之間不會(huì)被釋放。 tx_isolation(啟動(dòng):使用—transaction-isolaction選項(xiàng);作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是事務(wù)隔離的默認(rèn)級(jí)別。 tx_read_only(啟動(dòng):使用—transaction-read-only選項(xiàng);作用范圍:全局、會(huì)話;動(dòng)態(tài)) 默認(rèn)事務(wù)訪問模式是否為只讀。默認(rèn)值為OFF(即允許讀/寫)。此變量是在MySQL 5.6.5里引入的。 unique_checks(作用范圍:全局、會(huì)話動(dòng)態(tài)) 將此變量設(shè)置為0或1,將分別禁用或啟用對(duì)InnoDB表里的輔助索引進(jìn)行唯一性檢查。當(dāng)把數(shù)據(jù)導(dǎo)入InnoDB表時(shí),禁用這些檢查可以提升性能,但是只有事先知道這些數(shù)據(jù)值不會(huì)與唯一性需求沖突時(shí),才可以這樣做。 updatable_views_with_limit(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 當(dāng)禁用此變量時(shí),服務(wù)器會(huì)禁止對(duì)那些在其底表里沒有使用主鍵的視圖進(jìn)行更新操作(即執(zhí)行UPDATE或DELETE語句),即使更新操作里包含有LIMIT 1子句,把更新范圍限制在了單個(gè)行里也不行。當(dāng)啟用此變量時(shí)(默認(rèn)值),服務(wù)器會(huì)允許更新操作,并產(chǎn)生一條警告信息。 version(作用范圍:全局) 它指的是MySQL服務(wù)器的版本。此變量的值由一個(gè)版本編號(hào)以及(可能)一個(gè)或多個(gè)后綴構(gòu)成,如-log用于表明啟用日志記錄;-debug用于表明服務(wù)器正運(yùn)行在調(diào)試模式下。 version_comment(作用范圍:全局) 它指的是在配置服務(wù)器時(shí)指定給CMake的-DWITH_COMMENT選項(xiàng)的值。如果在配置時(shí)沒有指定任何注釋,則此變量的默認(rèn)值為“Source distribution”。 version_compile_machine(作用范圍:全局) 它指的是MySQL的編譯機(jī)器(即硬件類型)。這個(gè)值是在構(gòu)建MySQL時(shí)的配置階段確定的。 version_compile_os(作用范圍:全局) 它指的是MySQL的編譯操作系統(tǒng)。這個(gè)值是在構(gòu)建MySQL時(shí)的配置階段確定的。 wait_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量指的是,在服務(wù)器自己認(rèn)為可以將非交互式客戶端關(guān)閉之前,該客戶端能夠保持空閑的秒數(shù)。對(duì)于交互式客戶端,需要使用interactive_timeout變量的值來代替。 warning_count(作用范圍:會(huì)話) 這是一個(gè)只讀會(huì)話變量,它表示的是,最后那條語句所產(chǎn)生的諸如錯(cuò)誤、警告和注意等信息的數(shù)量。 InnoDB系統(tǒng)變量 下面這些系統(tǒng)變量都與InnoDB存儲(chǔ)引擎有關(guān)。 ignore_builtin_innodb(作用范圍:全局) 此變量未被使用。 innodb_adaptive_flushing(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它表示的是,InnoDB是否會(huì)試圖通過使用工作負(fù)載水平更改緩沖池里臟頁刷新頻率的方式來避免I/O爆炸。默認(rèn)值為ON。 innodb_adaptive_flushing_lwm(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是會(huì)使InnoDB啟用自適應(yīng)刷新功能的那個(gè)重做日志容量的最低百分比點(diǎn)數(shù)。默認(rèn)值為10。此變量是在MySQL 5.6.6里引入的。 innodb_adaptive_hash_index(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB是否要使用自適應(yīng)哈希索引。也就是說,它是否要見識(shí)索引查找,并動(dòng)態(tài)構(gòu)建散列索引,如果這樣做,則有可能提高性能。默認(rèn)值為ON。 innodb_adaptive_max_sleep_delay(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB是否要使用工作負(fù)載水平來調(diào)整innodb_thread_sleep_delay。當(dāng)值為0時(shí),會(huì)禁止調(diào)整。非零值最大可達(dá)1000000,它指定的是InnoDB調(diào)整innodb_thread_sleep_delay的上限值(單位為微秒)。默認(rèn)值為150000。此變量是在MySQL 5.6.3里引入的。 innodb_additional_mem_pool_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB存儲(chǔ)引擎用來存放各種內(nèi)部數(shù)據(jù)結(jié)構(gòu)的內(nèi)存池的大小。 innodb_autoextend_increment(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 當(dāng)某個(gè)自擴(kuò)展表空間快要被填滿時(shí),InnoDB存儲(chǔ)引擎將自動(dòng)使用此變量的值作為第增量去增加那個(gè)表空間的大小。指定值的單位為MB。此變量的默認(rèn)值是8,最大值是1000。 innodb_autoinc_lock_mode(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量控制的是InnoDB用于生成AUTO_INCREMENT值的鎖定算法。允許取值包括0、1(默認(rèn)值)和2。一般情況下,當(dāng)有多個(gè)事務(wù)需要同時(shí)生成自動(dòng)增量值時(shí),使用這些值可以增加鎖定的擴(kuò)展性、獲得更好的并發(fā)性,并減少阻塞。對(duì)于會(huì)生成多個(gè)這種值的多行INSERT語句,模式0和1可以爆炸生成的值在該語句內(nèi)部是連續(xù)的。模式2無法保證這種連續(xù)性:因?yàn)樗麄儾灰欢ㄟB續(xù)。著也會(huì)對(duì)復(fù)制產(chǎn)生影響。模式0和1對(duì)基于語句的復(fù)制來講是安全的;但是模式2分配的值是不確定的,因此該模式是不安全的。(所有的模式對(duì)基于行的復(fù)制都是安全的。) innodb_buffer_pool_dump_at_shutdown(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB是否會(huì)在關(guān)閉時(shí)將緩沖池轉(zhuǎn)儲(chǔ)至磁盤。默認(rèn)值為OFF。此變量是在MySQL 5.6.3里引入的。 innodb_buffer_pool_dump_now(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 將此變量設(shè)置為ON,會(huì)使得InnoDB立即將緩沖池轉(zhuǎn)儲(chǔ)至磁盤。默認(rèn)值為OFF。此變量是在MySQL 5.6.3里引入的。 innodb_buffer_pool_filename(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是InnoDB用于緩沖池轉(zhuǎn)儲(chǔ)和加載操作的那個(gè)文件的名字。默認(rèn)為數(shù)據(jù)目錄里的ib_buffer_pool文件。此變量是在MySQL 5.6.3里引入的。 innodb_buffer_pool_instances(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,如果innodb_buffer_pool_size的值至少為1GB,則需要將InnoDB緩沖池劃分為innodb_buffer_pool_instances個(gè)區(qū)域。此變量的默認(rèn)值是1(單個(gè)緩沖池),最大值是64。為達(dá)到最好的效果,需要對(duì)innodb_buffer_pool_size和innodb_buffer_pool_instances的值進(jìn)行選擇,以便每個(gè)實(shí)例都至少為1GB。此變量是在MySQL 5.5.4里引入的。 innodb_buffer_pool_load_abort(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 將此變量設(shè)置為ON,會(huì)導(dǎo)致InnoDB中斷當(dāng)前正從磁盤加載的所有緩沖池。默認(rèn)值為OFF。此變量是在MySQL 5.6.3里引入的。 innodb_buffer_pool_load_at_startup(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,InnoDB是否會(huì)在啟動(dòng)時(shí)從磁盤加載緩沖池。默認(rèn)值為OFF。此變量是在MySQL 5.6.3里引入的。 innodb_buffer_pool_load_now(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 將此變量設(shè)置為ON,會(huì)導(dǎo)致InnoDB立即從磁盤加載緩沖池。默認(rèn)值為OFF。此變量是在MySQL 5.6.3里引入的。 innodb_buffer_pool_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB用于緩沖表數(shù)據(jù)和索引的那個(gè)緩存的大小。默認(rèn)大小為128MB。 innodb_change_buffer_max_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是InnoDB為更改緩沖區(qū)預(yù)留的緩沖池最大百分比例。默認(rèn)值為25。允許的取值范圍為0~50。此變量是在MySQL 5.6.2里引入的。 innodb_change_buffering(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB緩沖表會(huì)如何更改輔助 索引的延遲寫操作。通過寫操作緩沖的方式,InnoDB有事可以把它們分成一組,然后順序地寫入,而不是以隨機(jī)方式寫入;這樣有利于提高I/O的性能。下表列出了各種可能的取值。 取值 含義 all 緩存所有的更改操作;這個(gè)是默認(rèn)值 none 不緩存更改操作 changes 緩存插入和刪除操作 deletes 緩存那些把索引記錄標(biāo)記為刪除的更改操作 inserts 緩存插入操作 purges 緩存那些被“垃圾回收器”標(biāo)記為刪除的清理操作 innodb_checksum_algorithm(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) InnoDB會(huì)在其表空間的每一個(gè)塊里寫入校驗(yàn)和值。此變量控制的是用于計(jì)算校驗(yàn)和值的算法。下表列出了各種可能的取值。strict_xxx的值與他們的對(duì)應(yīng)變量很相似,主要差異在于:InnoDB在表空間里遇到多種校驗(yàn)和類型時(shí)會(huì)停止。 取值 含義 none,strict_none 校驗(yàn)值為常量 crc3,strict_crc32 使用CRC32算法 innodb,strict_innodb 默認(rèn)算法 此變量是在MySQL 5.6.3里引入的。 innodb_checksums(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,InnoDB表是否啟用校驗(yàn)計(jì)算。默認(rèn)值為ON。自MySQL 5.6.3起,此變量已被棄用,請(qǐng)使用innodb_checksum_algorithm。 innodb_commit_concurrency(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量表示的是可以同時(shí)提交多少個(gè)線程。當(dāng)該值為0時(shí)(默認(rèn)值),表示的是“無限制”。 innodb_concurrency_tickets(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 當(dāng)某個(gè)線程想進(jìn)入InnoDB時(shí),只有當(dāng)線程數(shù)量小于innodb_commit_concurrency變量設(shè)置的上限時(shí)它才能成功。否則,該線程將排隊(duì)等候直到線程的數(shù)量降低到那個(gè)上限以下。一旦線程被允許進(jìn)入,它將可以不受限制地離開和重新進(jìn)入InnoDB,這種自由往返的最大次數(shù)由innodb_concurrency_tickets變量的值決定。默認(rèn)值為500。 innodb_data_file_path(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指定的是InnoDB表空間組件的文件。 innodb_data_home_dir(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是相對(duì)于InnoDB表空間組件文件存放位置的目錄路徑名。如果此變量為空,則組件文件名將被解釋為絕對(duì)路徑名。 innodb_doublewrite(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,InnoDB是否啟用了雙寫緩沖區(qū)。默認(rèn)值是ON。 innodb_fast_shutdown(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 當(dāng)此變量的值為0或1時(shí),它表示的是InnoDB是否使用其較快速的關(guān)機(jī)方法(它會(huì)跳過某些正常情況下會(huì)執(zhí)行的操作)。當(dāng)取值為2時(shí),InnoDB會(huì)刷新其日志,然后停止。 innodb_file_format(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果啟用了innodb_file_per_table,則它指的是InnoDB新表所使用的格式。默認(rèn)格式為Antelope;另一個(gè)允許值為Barracuda。使用Barracuda可以啟用不被Antelope支持的功能,如COMPRESSED行格式。 innodb_file_format_check(啟動(dòng):直接設(shè)置;作用范圍:全局) InnoDB系統(tǒng)表空間包含有一個(gè)標(biāo)志,它表示的是表空間里使用的最高版本的文件格式。此變量會(huì)在服務(wù)器啟動(dòng)時(shí)設(shè)置,主要用于控制InnoDB是否要檢查這個(gè)標(biāo)志,以確定此格式版本比InnoDB支持的那個(gè)版本更高。如果啟用此變量(默認(rèn)值),并且該格式版本更高,那么啟動(dòng)會(huì)失敗,并產(chǎn)生一個(gè)錯(cuò)誤。如果該格式版本不夠高,那么InnoDB會(huì)將innodb_file_format_max設(shè)置成該格式。 innodb_file_format_max(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 請(qǐng)參考innodb_file_format_check的描述。 innodb_file_io_threads(啟動(dòng):直接設(shè)置) 此變量未被使用。 innodb_file_per_table(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果此變量被設(shè)置為0(默認(rèn)值),InnoDB將在其系統(tǒng)表空間里創(chuàng)建新表。如果此變量被設(shè)置為1,InnoDB將為每個(gè)新表分別創(chuàng)建一個(gè)獨(dú)立表空間:在數(shù)據(jù)庫目錄里為每一個(gè)新表單獨(dú)創(chuàng)建一個(gè).ibd文件來存放該表的內(nèi)容。在這種情況下,系統(tǒng)表空間只會(huì)用于InnoDB數(shù)據(jù)目錄條目,而不會(huì)用于數(shù)據(jù)或索引存儲(chǔ)。 此變量只影響InnoDB如何創(chuàng)建新表。不管如何更改此變量的值,InnoDB存儲(chǔ)引擎總是可以訪問已經(jīng)在系統(tǒng)表空間或獨(dú)立表空間里創(chuàng)建的表。 innodb_flush_log_at_trx_commit(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 這個(gè)變量控制著InnoDB日志的刷新行為。下表列出了各種可能的取值。 取值 含義 0 每秒寫入一次日志,并刷新到磁盤一次 1 每提交一次寫入一次日志,并刷新到磁盤一次 2 每提交一次寫入一次日志,但是每秒刷新到磁盤一次 只有在將此變量設(shè)置為1(默認(rèn)值)時(shí),InnoDB才能爆炸ACID特性。否則,如果出現(xiàn)崩潰的情況,那么會(huì)付出大約1秒的代價(jià),即最近的事務(wù)會(huì)丟死。如果將此變量設(shè)置為0,則可以減少InnoDB將緩存數(shù)據(jù)保存到磁盤的次數(shù)。不過,如果出現(xiàn)崩潰,則這樣會(huì)大大增加潛在丟失最近提交事務(wù)的風(fēng)險(xiǎn)。 innodb_flush_method(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量給出的是InnoDB用來刷新文件的方法。它只適用于Unix系統(tǒng)??扇≈蛋╢datasync(使用fsync()來刷新數(shù)據(jù)文件和日志文件)、O_DSYNC(使用fsync()來刷新數(shù)據(jù)文件,并使用O_DSYNC來打開和刷新日志文件)和O_DIRECT(使用fsync()來刷新數(shù)據(jù)文件和日志文件,視情況選用O_DIRECT或directio()來打開數(shù)據(jù)文件)。默認(rèn)值為fdatasync。在Windows里,此變量的值總是為async_unbuffered。 innodb_flush_neighbors(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它表示的是,InnoDB是單獨(dú)刷新緩沖池的臟面,還是連同位于同一范圍(頁面組)內(nèi)的相鄰頁面一起刷新。刷新相鄰頁面,可以將寫操作結(jié)合在一起,減少磁盤設(shè)備旋轉(zhuǎn)過程中的尋道時(shí)間開銷。這個(gè)變量是在MySQL 5.6.3里引入的,是一個(gè)布爾量,其默認(rèn)值為ON。自MySQL 5.6.6起,這個(gè)變量成為了三態(tài)變量,允許的值包括:0(不刷新相鄰頁面)、1(刷新相鄰頁面)和2(刷新同一范圍里的所有相鄰頁面)。 innodb_force_load_corrupted(啟動(dòng):直接設(shè)置;作用范圍:全局) 它表示的是,InnoDB在啟動(dòng)時(shí)是否加載已標(biāo)記為損壞的表。默認(rèn)值為OFF,因此這些表通常情況下會(huì)被忽略。如果啟用此變量,則可能允許恢復(fù)那些在禁用此變量時(shí)無法訪問的數(shù)據(jù);在恢復(fù)之后,可以在禁用此變量的情況下重啟服務(wù)器。此變量是在MySQL 5.5.18里引入的。 innodb_force_recovery(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量的值通常為0,但是可以被設(shè)置為1~6的某個(gè)值,以便讓服務(wù)器在崩潰后即使InnoDB恢復(fù)失敗也可以再次啟動(dòng)。 innodb_ft_xxx 在MySQL 5.6.4之前,對(duì)全文搜索的支持僅限于MyISAM表。這些以innodb_ft作為開頭的系統(tǒng)變量都與InnoDB表的全文搜索支持有關(guān)。該項(xiàng)功能是在MySQL 5.6.4引入的。更多信息,請(qǐng)參考MySQL擦卡手冊(cè)。 innodb_io_capacity(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是InnoDB對(duì)于后臺(tái)任務(wù)每秒執(zhí)行I/O操作次數(shù)的近似限制。默認(rèn)值為200,最小值為100。對(duì)于慢速旋轉(zhuǎn)的磁盤,可能需要將這個(gè)值調(diào)低一點(diǎn)。對(duì)于SSD磁盤,可以將其適當(dāng)調(diào)高。請(qǐng)參考innodb_io_capacity_max。 innodb_io_capacity_max(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果innodb_io_capacity的值在緊急情況下不夠高,那么innodb_io_capacity_max會(huì)成為InnoDB可以將該限制擴(kuò)展到的最大值。其默認(rèn)值為innodb_io_capacity默認(rèn)值的兩倍,它受限制于服務(wù)器所使用的最低值2000。此變量是在MySQL 5.6.6里引入的。 innodb_large_prefix(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) InnoDB索引的最大索引前綴長(zhǎng)度通常是767字節(jié)。如果啟用此變量,那么對(duì)于那些使用COMPRESSED或DYNAMIC行格式的表,允許前綴最高達(dá)到3072個(gè)字節(jié)。默認(rèn)值為OFF。此變量是在MySQL 5.5.14里引入的。 innodb_lock_wait_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是等待某個(gè)事務(wù)鎖的秒數(shù)。如果無法獲得該鎖,則InnoDB會(huì)回滾該事務(wù)。 innodb_locks_unsafe_for_binlog(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量會(huì)對(duì)InnoDB如何處理索引行鎖定產(chǎn)生影響,但是自MySQL 5.6.3起,它已被棄用,因此請(qǐng)不要再使用它。為獲得與此變量相同的效果(非嚴(yán)格的鎖定),但是更加靈活,可以針對(duì)特定的會(huì)話或事務(wù),使用SET TRANSACTION將事務(wù)隔離級(jí)別設(shè)置為READ COMMITTED。 innodb_log_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB事務(wù)日志緩沖區(qū)的大小。此變量的取值范圍通常是1MB~8MB;默認(rèn)為1MB。 innodb_log_file_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是每個(gè)InnoDB日志文件的大小。innodb_log_file_size和innodb_log_files_in_group的乘積決定了InnoDB日志的總大小。 innodb_log_group_home_dir(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB應(yīng)該將其日志文件寫入的那個(gè)目錄的路徑名。 innodb_lru_scan_depth(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) InnoDB會(huì)使用一個(gè)后臺(tái)操作來查找需要從其緩沖池刷新到磁盤的臟頁。這個(gè)變量控制的是這個(gè)操作能夠查看到的頁面列表(按最近最少使用的順序排序)的長(zhǎng)度。對(duì)默認(rèn)值1024的合理更改包括:對(duì)于擁有繁重寫操作工作負(fù)載和大型緩沖池的服務(wù)器,可以減小這個(gè)值;而對(duì)于I/O能力還有盈余的服務(wù)器,可以增加這個(gè)值。此變量是在MySQL 5.6.3里引入的。 innodb_max_dirty_page_pct(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,在InnoDB認(rèn)為需要將日志刷新到磁盤之前,InnoDB允許臟頁占用其緩沖池的百分比。允許的取值范圍是0~100;默認(rèn)值為90。 innodb_max_dirty_pages_pct_lwm(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB為降低臟頁的占用比例,而啟用預(yù)刷新功能所參考的緩沖池臟頁最低占用百分比。默認(rèn)值為0,表示禁止預(yù)刷新。允許的取值范圍為0~99。此變量是在MySQL 5.6.6里引入的。 innodb_max_purge_lag(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) InnoDB維護(hù)著一個(gè)清除線程,它可以清除刪除操作或更新操作標(biāo)記的待刪除的行。如果小批量行被插入和刪除的頻率差不多相同,啊呢么清除線程可能會(huì)落后,進(jìn)而導(dǎo)致大量待刪除行不能及時(shí)清除,而占用著本應(yīng)該釋放的空間。innodb_max_purge_lag變量控制著如何延遲INSERT、DELETE和UPDATE語句,讓它們適當(dāng)放慢速度以便清除線程能夠追上它們的進(jìn)度。默認(rèn)為0(即不延遲)。如果把此變量設(shè)置為一個(gè)非零值,那么延遲大約是((n/innodb_max_purge_lag) x10 ) – 5毫秒,其中的n是在執(zhí)行過程中會(huì)把一些行標(biāo)記為待刪除的事務(wù)的數(shù)量。 innodb_max_purge_lag_delay(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是可以由innodb_max_purge_lag產(chǎn)生的延遲間隔(單位為毫秒)。默認(rèn)為0(即無間隔)。此變量是在MySQL 5.6.5里引入的。 innodb_mirrored_log_groups(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB維護(hù)的日志文件組的個(gè)數(shù)。其值總是為1。 innodb_monitor_disable、innodb_monitor_enable、innodb_monitor_reset、innodb_monitor_reset_all(啟動(dòng):直接設(shè)置;作用范圍:全局) 這次變量控制的是對(duì)INFORMATION_SCHEMA.innodb_metrics表的操作。更多信息請(qǐng)參考MySQL參考手冊(cè)。這些變量是在MySQL 5.6.2里引入的。 innodb_old_blocks_pct(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是InnoDB緩沖池的舊子列表所占百分比。默認(rèn)值為37(即緩沖池的3/8)。允許的取值范圍為5~95。 innodb_old_blocks_time(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 一個(gè)緩沖塊在第一次訪問之后、下次訪問之前,需要在InnoDB緩沖池的舊子列表里待多少毫秒才能移動(dòng)到新子列表里。默認(rèn)值為0。表示的是,插到舊子列表里的緩存塊,在第一次訪問時(shí)會(huì)立即移到新子列表里去。 innodb_open_files(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果將innodb_file_per_table變量設(shè)置為1,將啟用獨(dú)立表空間。innodb_open_files變量控制著需要為InnoDB存儲(chǔ)引擎保留多少個(gè)文件描述符用于同時(shí)打開多個(gè).ibd文件。最小值為10,默認(rèn)值為300。在innodb_open_files變量控制下分配的文件描述符與在open_files_limit變量控制下分配的文件描述符互不相干:前者用來打開.ibd文件,后者供表緩沖區(qū)使用。 innodb_page_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB表空間里的頁面大小。默認(rèn)大小為16KB。允許值由4KB、8KB和16KB。該設(shè)置只有在InnoDB初始化表空間的時(shí)候才會(huì)生效,因此應(yīng)該在初始化MySQL之前,或者在刪除并重新創(chuàng)建InnoDB表空間文件之前設(shè)置它。此變量是在MySQL 5.6.4里引入的。 innodb_print_all_deadlocks(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB是否會(huì)將診斷信息寫到與事務(wù)死鎖有關(guān)的錯(cuò)誤日志里。默認(rèn)值為OFF。此變量是在MySQL 5.6.2里引入的。 innodb_purge_batch_size(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,重做日志記錄的數(shù)量。這些記錄會(huì)引發(fā)清除操作,將更改過的緩沖池?cái)?shù)據(jù)塊刷新到磁盤上。默認(rèn)值為20。此變量是在MySQL 5.5.4里引入的。 innodb_purge_threads(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,InnoDB使用了多少后臺(tái)線程來實(shí)現(xiàn)清除操作(將所有事務(wù)都不再需要的待刪除行刪除掉)。默認(rèn)值為0。此變量是在MySQL 5.5.4里引入的。 innodb_random_read_ahead(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB是否要試圖預(yù)測(cè)何時(shí)會(huì)需要位于某個(gè)范圍內(nèi)(即頁面組)的頁面,并為它們執(zhí)行一個(gè)異步的預(yù)讀取操作。預(yù)測(cè)的依據(jù)是該范圍內(nèi)的其他頁面是否已被讀取,而它們的讀取順序無關(guān)緊要。默認(rèn)值為OFF。 innodb_read_ahead_threshold(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果InnoDB檢測(cè)到某個(gè)模式的順序頁面方位是由innodb_read_ahead_threshold或多個(gè)來自同一范圍(頁面組)的頁面構(gòu)成,那么它會(huì)在下一個(gè)范圍里執(zhí)行一個(gè)異步預(yù)讀取操作。默認(rèn)值為56。允許的取值范圍為0~64。 innodb_read_io_threads(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB在執(zhí)行讀取操作時(shí)會(huì)時(shí)候多少個(gè)線程。日期范圍是1~64;默認(rèn)值為4。 innodb_replication_delay(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 如果在從服務(wù)器上已達(dá)到innodb_thread_concurrency表明的那個(gè)限制,那么此變量便是復(fù)制線程的延遲時(shí)間(單位為毫秒)。默認(rèn)值為0。 innodb_rollback_on_timeout(啟動(dòng):直接設(shè)置;作用范圍:全局) 此變量控制著InnoDB存儲(chǔ)引擎在事務(wù)超時(shí)時(shí)的行為。如果此變量的值是OFF(默認(rèn)值),InnoDB存儲(chǔ)引擎將只回滾最后一條語句;如果此變量的值是ON,InnoDB存儲(chǔ)引擎將回滾整個(gè)事務(wù)。 innodb_rollback_segments(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,在一個(gè)事務(wù)里,InnoDB在系統(tǒng)表空間里會(huì)使用多少回滾段。默認(rèn)值為128。此變量是在MySQL 5.5.11里引入的。在5.6.3里,它被替換成了innodb_undo_logs。 innodb_sort_buffer_size(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB在索引創(chuàng)建期間用于合并排序的緩沖區(qū)大?。▎挝粸樽止?jié))。默認(rèn)大小為1MB。在MySQL 5.6.4里最小值為512KB;在MySQL 5.6.5及以上的版本里,最小值為64KB。此變量是在MySQL 5.6.4里引入的。在MySQL 5.6.4之前,使用的是固定大小1MB。 innodb_spin_wait_delay(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,旋轉(zhuǎn)鎖的兩次輪詢之間的最大等待值。這個(gè)值沒有單位,但是值越大意味著等待得越久。默認(rèn)值為6,最小值為0。 innodb_stats_method(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 此變量表示的是,服務(wù)器在InnoDB表統(tǒng)計(jì)器索引鍵的分布概率時(shí),應(yīng)該把NULL值視為相同,還是視為不同??稍O(shè)置的值包括有:nulls_equal(所有的NULL值在同一個(gè)組里)、nulls_unequal(每個(gè)NULL值單獨(dú)成為一組)或nulls_ignored(忽略NULL值)。 innodb_stats_on_metadata(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,InnoDB是否要更新與那些與表元數(shù)據(jù)訪問語句(如SHOW INDEX或SHOW TABLE STATUS)有關(guān)的統(tǒng)計(jì)信息,或者更新那些與訪問STATISTICS表和執(zhí)行TABLES INFORMATION_SCHEMA語句所得到的各張表有關(guān)的統(tǒng)計(jì)信息。其效果與運(yùn)行ANALYZE TABLE相類似。默認(rèn)值為ON。 innodb_stats_persistent_sample_pages(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,用于估計(jì)統(tǒng)計(jì)信息的InnoDB樣本的索引頁數(shù)量。默認(rèn)值為20。如果啟用了innodb_analyze_is_persistent,那么此設(shè)置會(huì)被忽略掉。否則,InnoDB會(huì)使用innodb_stats_transient_sample_pages的值。此變量是在MySQL 5.6.2里引入的。 innodb_stats_sample_pages(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 在MySQL 5.5里,它指的是用于估計(jì)統(tǒng)計(jì)信息的InnoDB樣本的索引頁數(shù)量。默認(rèn)值為8。自MySQL 5.6.3起,此變量已被棄用,請(qǐng)使用innodb_stats_transient_sample_pages。 innodb_stats_transient_sample_pages(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,用于估計(jì)統(tǒng)計(jì)信息的InnoDB樣本的索引頁數(shù)量。默認(rèn)值為8。如果啟用了innodb_analyze_is_persistent,此設(shè)置會(huì)被忽略。否則,InnoDB會(huì)使用innodb_stats_transient_sample_pages的值。此變量是在MySQL 5.6.2里引入的。 innodb_strict_mode(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它指的是,InnoDB是否對(duì)表和索引的創(chuàng)建和修改語句的語法進(jìn)行較嚴(yán)格要求。如果啟用了此變量,那么InnoDB會(huì)把有沖突的子句當(dāng)作錯(cuò)誤;否則,它們會(huì)被當(dāng)作警告。這個(gè)有點(diǎn)類似于啟用了嚴(yán)格的SQL默認(rèn)。 innodb_support_xz(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 它表示的是,InnoDB在XA事務(wù)里是否支持兩階段提交默認(rèn)。默認(rèn)值為ON;但是如果為了獲得更好的性能而不使用XA事務(wù),則可以將其設(shè)置為OFF。 innodb_sync_spin_loops(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它表示的是,線程在被掛起之前等待InnoDB釋放互斥信號(hào)的次數(shù)。 innodb_table_locks(啟動(dòng):直接設(shè)置;作用范圍:全局、會(huì)話;動(dòng)態(tài)) 此變量控制的是,當(dāng)禁用自動(dòng)提交模式時(shí),InnoDB會(huì)如何處理LOCK TABLE語句,以獲得InnoDB表的寫鎖。如果此變量的值是ON(默認(rèn)值),InnoDB將申請(qǐng)到一個(gè)內(nèi)部表鎖。如果此變量的值是OFF,InnoDB要一直等到?jīng)]有任何其他線程鎖定那個(gè)表時(shí)才能執(zhí)行LOCK TABLE語句。禁用此變量可以在一定程度上防止應(yīng)用程序在自動(dòng)提交模式已被禁用的情況下發(fā)出LOCK TABLE語句時(shí)遭遇死鎖。 innodb_thread_concurrency(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是InnoDB嘗試維護(hù)的線程數(shù)量上限。當(dāng)值為0時(shí)(默認(rèn)值),表示的是“無限制”。允許的取值范圍為0~1000。 innodb_thread_sleep_delay(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是InnoDB線程在被放入InnoDB等待隊(duì)列之前休眠的時(shí)間(單位為毫秒)。默認(rèn)值為10000(即10秒);值為0時(shí),表示的是“不休眠”。 innodb_undo_directory(啟動(dòng):直接設(shè)置;作用范圍:全局) 如果innodb_undo_logs和innodb_undo_tablespaces都是非零值,則它指的是InnoDB在其中創(chuàng)建獨(dú)立恢復(fù)日志表空間的那個(gè)目錄。默認(rèn)值為“.”,它表示的是InnoDB在其中創(chuàng)建其他日志文件的那個(gè)默認(rèn)目錄。此變量是在MySQL 5.6.3里引入的。 innodb_undo_logs(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 它指的是,在一個(gè)事務(wù)里,InnoDB在系統(tǒng)表空間里會(huì)使用多少回滾段。默認(rèn)值為128。此變量是在MySQL 5.6.3里引入的。它用于替換innodb_rollback_segments。 innodb_undo_tablespaces(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB針對(duì)獨(dú)立恢復(fù)日志所使用的那個(gè)表空間文件數(shù)量。默認(rèn)值為0。此變量是在MySQL 5.6.3里引入的。 innodb_use_native_aio(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,在Linux里是否使用異步I/O子系統(tǒng)。默認(rèn)值為ON。此變量是在MySQL 5.5.4里引入的。 innodb_use_sys_malloc(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是,InnoDB是否要使用系統(tǒng)內(nèi)存分配器。默認(rèn)值為ON。如果禁用此變量,會(huì)導(dǎo)致InnoDB使用其自己的分配器。 innodb_version(作用范圍:全局) 它指的是InnoDB存儲(chǔ)引擎的版本號(hào)。 innodb_write_io_threads(啟動(dòng):直接設(shè)置;作用范圍:全局) 它指的是InnoDB在執(zhí)行寫入操作時(shí)會(huì)使用多少個(gè)線程。取值范圍是1~64;默認(rèn)值為4。 timed_mutexes(啟動(dòng):直接設(shè)置;作用范圍:全局;動(dòng)態(tài)) 是否要搜集InnoDB的互斥時(shí)間信息。默認(rèn)值為OFF。 狀態(tài)變量 狀態(tài)變量提供的是各種與服務(wù)器當(dāng)前運(yùn)作狀態(tài)有關(guān)的信息。通過使用SHOW STATUS語句或執(zhí)行mysqladmin extended-status命令可以查看這些狀態(tài)變量。狀態(tài)變量(與系統(tǒng)變量相似)的值可分為全局級(jí)和會(huì)話級(jí),分別對(duì)應(yīng)于所有客戶端的總和值和當(dāng)前客戶端的值。如果某個(gè)狀態(tài)變量只有一個(gè)全局值,則全局變量和會(huì)話變量都將返回相同的值。另外,還可以通過在INFORMATION_SCHEMA數(shù)據(jù)庫里查詢表GLOBAL_STATUS和SESSION_STATUS來獲得狀態(tài)變量信息。 狀態(tài)變量名不區(qū)分大小寫。 下面列出的是一些比較通用的狀態(tài)變量。隨后的節(jié)描述的是幾組彼此相關(guān)的狀態(tài)變量,其中涉及的類型包括:InnoDB存儲(chǔ)引擎、查詢緩存和SSL。 Aborted_clients 因客戶端未正確關(guān)閉而被中斷的客戶端連接個(gè)數(shù)。 Aborted_connects 連接服務(wù)器的嘗試失敗的次數(shù)。 Binlog_cache_disk_use 因其大小超過系統(tǒng)變量binlog_cache_size的限制而使用臨時(shí)磁盤文件的那些事務(wù)的數(shù)量。 Binlog_cache_use 因其大小未超過系統(tǒng)變量binlog_cache_size的限制而保存在二進(jìn)制日志緩存里的那些事務(wù)的數(shù)量。 Binlog_stmt_cache_disk_use 因語句緩存已滿而存儲(chǔ)在臨時(shí)文件里的非事務(wù)語句的數(shù)量。此變量是在MySQL 5.5.9里引入的。 Binlog_stmt_cache_use 存儲(chǔ)在語句緩存里的非事務(wù)語句數(shù)量。此變量是在MySQL 5.5.9里引入的。 Bytes_received 服務(wù)器從所有客戶端(對(duì)于全局值)或當(dāng)前客戶端(對(duì)于會(huì)話值)接收到的字節(jié)總數(shù)。 Bytes_sent 服務(wù)器向所有客戶端(對(duì)于全局值)或當(dāng)前客戶端(對(duì)于會(huì)話值)發(fā)送出去的字節(jié)總數(shù)。 Com_xxx 服務(wù)器維護(hù)著一組狀態(tài)變量,它們的作用是計(jì)數(shù)器,用于表示特定類型的語句(或命令)已執(zhí)行的次數(shù)。這種類型的變量有幾十個(gè),并且它們的名字都相似,因此這里沒有將它們逐一地列出來。每個(gè)語句計(jì)數(shù)器的變量名都已Com_作為開頭,并且都有一個(gè)后綴,用于表明該計(jì)數(shù)器所對(duì)應(yīng)的語句類型。例如,變量Com_select和Com_drop_table分別表示的是服務(wù)器已執(zhí)行了多少條SELECT語句和DROP TABLE語句。 Compression 表明是否對(duì)利用客戶端/服務(wù)器協(xié)議實(shí)現(xiàn)的通信進(jìn)行壓縮。 Connection_errors_xxx 這些變量用于跟蹤在客戶端嘗試進(jìn)行連接時(shí)出現(xiàn)的各種類型的錯(cuò)誤。這些變量是在MySQL 5.6.5里引入的。 Connections 嘗試連接服務(wù)器的次數(shù)(包括成功或失敗的)。 Created_tmp_disk_tables 服務(wù)器在處理語句時(shí)在磁盤上創(chuàng)建的內(nèi)部臨時(shí)表個(gè)數(shù)。 Created_tmp_files 服務(wù)器創(chuàng)建的臨時(shí)文件個(gè)數(shù)。 Created_tmp_tables 服務(wù)器在處理語句時(shí)創(chuàng)建的內(nèi)部臨時(shí)表個(gè)數(shù)。 Delayed_errors 在處理INSERT DELAYED行時(shí)發(fā)生的錯(cuò)誤個(gè)數(shù)。 Delayed_insert_threads INSERT DELAYED處理器的個(gè)數(shù)。 Delayed_writes 已寫入的INSERT DELAYED行的個(gè)數(shù)。 Flush_commands 已執(zhí)行的表刷新操作次數(shù)。 Handler_commit 請(qǐng)求提交事務(wù)的次數(shù)。 Handler_delete 請(qǐng)求從表刪除行的次數(shù)。 Handler_external_lock 此變量與鎖定操作數(shù)量有關(guān),主要是在表訪問的開始和結(jié)束時(shí)起作用。其值除以2,即為鎖定操作的次數(shù)。比變量是在MySQL 5.6.2里引入的。 Handler_mrr_init 有些存儲(chǔ)引擎自己實(shí)現(xiàn)了“多范圍讀取”(Multi-Range Read)優(yōu)化策略。此變量表示的是服務(wù)器使用該實(shí)現(xiàn)的次數(shù)。比變量是在MySQL 5.6.1里引入的。 Handler_prepare 為兩階段提交所做的準(zhǔn)備次數(shù)。 Handler_read_first 請(qǐng)求從索引里讀取第一行的次數(shù)。 Handler_read_key 請(qǐng)求基于索引值讀取行的次數(shù)。 Handler_read_last 請(qǐng)求從索引里讀取最后一行的次數(shù)。比變量是在MySQL 5.5.7里引入的。 Handler_read_next 按索引順序請(qǐng)求讀取下一行的次數(shù)。 Handler_read_prev 按索引逆序請(qǐng)求讀取上一行的次數(shù)。 Handler_read_rnd 根據(jù)位置請(qǐng)求讀取一行的次數(shù)。 Handler_read_rnd_next 請(qǐng)求讀取下一行的次數(shù)。如果這個(gè)值很大,則說明你可能在執(zhí)行大量的需要全表掃描的語句,或者執(zhí)行大量的未正確使用索引的語句。 Handler_rollback 請(qǐng)求事務(wù)回滾的次數(shù)。 Handler_savepoint 請(qǐng)求創(chuàng)建事務(wù)保存點(diǎn)的次數(shù)。 Handler_savepoint_rollback 請(qǐng)求回滾到事務(wù)保存點(diǎn)的次數(shù)。 Handler_update 在表里請(qǐng)求更新行的次數(shù)。 Handler_write 在表里請(qǐng)求插入行的次數(shù)。 Key_blocks_not_flushed 在鍵緩存里已被修改、但仍未刷新到磁盤的緩存塊個(gè)數(shù)。 Key_blocks_unused 鍵緩存用尚未使用的緩存塊個(gè)數(shù)。 Key_blocks_used 鍵緩存里被同時(shí)使用的緩存塊最大個(gè)數(shù)。 Key_reads_requests 請(qǐng)求從鍵緩存里讀取數(shù)據(jù)塊的次數(shù)。 Key_reads 從磁盤里讀取索引塊的次數(shù)。 Key_write_requests 請(qǐng)求把數(shù)據(jù)塊寫入鍵緩存的次數(shù)。 Key_writes 把索引塊寫入鍵緩存的次數(shù)。 Last_query_cost 查詢優(yōu)化器最近一次的查詢開銷計(jì)算。這個(gè)值只對(duì)未使用UNION或子查詢才有用。如果還沒計(jì)算出查詢開銷,則這個(gè)值為0。這個(gè)值只對(duì)使用查詢緩存的查詢才有效。 Last_query_partial_plans 它適用于最近執(zhí)行的查詢,指的是優(yōu)化器在準(zhǔn)備執(zhí)行計(jì)劃時(shí)迭代的次數(shù)。此變量是MySQL 5.6.5里引入的。 Max_used_connections 同時(shí)打開的最大連接數(shù)。 Not_flushed_delayed_rows 等待通過INSERT DELAYED語句寫入的行個(gè)數(shù)。 Open_files 打開文件的個(gè)數(shù)。 Open_streams 處于打開狀態(tài)的文件流的個(gè)數(shù)。一個(gè)流即為一個(gè)用fopen()函數(shù)打開的文件。它只適用于日志文件。 Open_table_definitions 緩存的.frm文件的個(gè)數(shù)。 Open_tables 處于打開狀態(tài)的表的個(gè)數(shù),其中不包括TEMPORARY表 Opened_files 服務(wù)器已打開文件的次數(shù)。(有些存儲(chǔ)引擎不會(huì)遞增這個(gè)計(jì)數(shù)器的值。) 服務(wù)器使用內(nèi)部庫函數(shù)my_open()打開文件的次數(shù)。 Opened_table_definitions 服務(wù)器已打開.frm文件的次數(shù)。 Opened_tables 服務(wù)器已打開表的次數(shù)。如果這個(gè)值很大,則應(yīng)該考慮加大表緩存。 Performance_schema_xxx 這些以Performance_schema開頭的狀態(tài)變量都與用于采集和分析服務(wù)器性能數(shù)據(jù)的Performance Schema程序有關(guān)。更多詳細(xì)信息請(qǐng)參考MySQL參考手冊(cè)。 Prepared_stmt_count 預(yù)處理語句的個(gè)數(shù)。 Questions 服務(wù)器接收到的語句個(gè)數(shù)(其中即包括成功的語句也包括不成功的語句)。Questions和Uptime的比值即為每秒處理的語句數(shù)量。 Select_full_join “完全”連接(即未使用索引的連接操作)的次數(shù)。 Select_full_range_join 對(duì)參照表進(jìn)行范圍搜索時(shí)執(zhí)行連接的次數(shù)。 Select_range 使用第一個(gè)表的范圍執(zhí)行連接的次數(shù)。 Select_range_check 在利用服務(wù)搜索獲取輔助表的行時(shí)執(zhí)行連接的次數(shù)。 Select_scan 在對(duì)第一張表進(jìn)行全表掃描時(shí)執(zhí)行連接的次數(shù)。 Slave_heartbeat_period 復(fù)制操作使用的心跳間隔(單位為秒)。 Slave_last_heartbeat 該TIMESTAMP值表示的是從主服務(wù)器接收最后一個(gè)心跳包的時(shí)間。此變量是在MySQL 5.6.1里引入的。 Slave_open_tmp_tables 從SQL線程曾經(jīng)打開的臨時(shí)表個(gè)數(shù)。 Slave_received_heartbeats 自上一條CHANGE MASTER語句以來或者自從服務(wù)器重啟或重置一起來,從主服務(wù)器接收到的心跳包個(gè)數(shù)。 Slave_retried_transactions 從SQL線程重試事務(wù)的次數(shù)。 Slave_running 從I/O線程和SQL線程是否都在運(yùn)行中。 Slow_launch_threads 創(chuàng)建時(shí)間超過slow_lanuch_time秒的線程數(shù)。 Slow_queries 查詢時(shí)間超過long_query_time秒的查詢的個(gè)數(shù)。 Sort_merge_passes 排序算法執(zhí)行的合并的次數(shù)。 Sort_range 使用范圍的排序操作的個(gè)數(shù)。 Sort_rows 排好序的行數(shù)。 Sort_scan 使用全表掃描的排序操作的個(gè)數(shù)。 Table_locks_immediate 無需等待便能立刻得到滿足的表鎖請(qǐng)求的數(shù)量。 Table_locks_waited 只有在等待之后才能得到滿足的表鎖請(qǐng)求的數(shù)量。如果這個(gè)值很大,則表明表鎖存在大量的競(jìng)爭(zhēng)問題。 Table_open_cache_hits、Table_open_cache_misses、Table_open_cache_overflows 這些變量提供的是與打開表緩存的操作相關(guān)的統(tǒng)計(jì)信息?!懊小焙汀叭笔А狈謩e指的是在緩存里找到和未找到表?!耙绯觥敝档氖蔷彺娉鰐able_open_cache所表示的那個(gè)大小限制的次數(shù)。此變量是在MySQL 5.6.6里引入的。 Tc_log_max_pages_used 事務(wù)協(xié)調(diào)恢復(fù)日志文件所使用的頁面的最大數(shù)量。 Tc_log_page_size 事務(wù)協(xié)調(diào)恢復(fù)日志文件的頁面大小。 Tc_log_page_waits 在事務(wù)協(xié)調(diào)恢復(fù)日志文件里,兩階段提交操作必須等待空閑頁面的次數(shù)。 Threads_cached 線程緩存里的線程數(shù)量。 Threads_connected 處于打開狀態(tài)的連接數(shù)量。 Threads_created 服務(wù)器為處理客戶端連接而創(chuàng)建線程的次數(shù)。 Threads_running 處于激活狀態(tài)(非休眠狀態(tài))的線程個(gè)數(shù)。 Uptime 服務(wù)器自開始運(yùn)行以來持續(xù)運(yùn)行的秒數(shù)。 Uptime_since_flush_status 自最近一次執(zhí)行FLUSH STATUS語句以來經(jīng)過的秒數(shù)。 InnoDB狀態(tài)變量 下面這些狀態(tài)變量顯示的是與InnoDB存儲(chǔ)引擎操作有關(guān)的信息。其中許多都可以在SHOW ENGINE INNODB STATUS語句的輸出里獲得,但是SHOW STATUS語句的輸出更容易讀懂。 Innodb_available_undo_logs 可用的InnoDB恢復(fù)日志個(gè)數(shù)。(系統(tǒng)變量innodb_undo_logs表示的是當(dāng)前激活的數(shù)量。)此變量是在MySQL 5.6.5里引入的。 Innodb_buffer_pool_pages_data InnoDB緩沖池里包含數(shù)據(jù)的頁面數(shù)量。此計(jì)數(shù)包括那些從沒被修改過的干凈頁面和那些包含修改數(shù)據(jù)的臟頁。 Innodb_buffer_pool_dump_status 緩沖池轉(zhuǎn)儲(chǔ)操作的當(dāng)前狀態(tài)。此變量是在MySQL 5.6.3里引入的。 Innodb_buffer_pool_load_status 緩沖池加載操作的當(dāng)前狀態(tài)。此變量是在MySQL 5.6.3里引入的。 Innodb_buffer_pool_pages_dirty InnoDB緩沖池里包含修改過的數(shù)據(jù)的頁面數(shù)量。 Innodb_buffer_pool_pages_flushed 已執(zhí)行過刷新請(qǐng)求的InnoDB緩沖池的頁面數(shù)量。 Innodb_buffer_pool_pages_free InnoDB緩沖池里的空閑頁面數(shù)。 Innodb_buffer_pool_pages_latched InnoDB緩沖池里正在被讀取或?qū)懭氲捻撁鏀?shù),或者不能被刷新和釋放以再次使用的頁面數(shù)。只有在構(gòu)建MySQL時(shí)定義了UNIV_DEBUG才會(huì)顯示。 Innodb_buffer_pool_pages_misc InnoDB緩沖池里的內(nèi)部操作所分配到的頁面數(shù)。 Innodb_buffer_pool_pages_total InnoDB緩沖池里的頁面總數(shù)。 Innodb_buffer_pool_read_ahead InnoDB預(yù)讀后臺(tái)線程讀入InnoDB緩沖池的頁面數(shù)。 Innodb_buffer_pool_read_ahead_evicted 被InnoDB預(yù)讀后臺(tái)線程讀入的、因未被查詢使用而驅(qū)逐的頁面數(shù)量。 Innodb_buffer_pool_read_requests InnoDB發(fā)起的邏輯讀請(qǐng)求的數(shù)量。 Innodb_buffer_pool_reads 因不能從InnoDB緩沖池進(jìn)行邏輯讀取而采取的單頁讀取操作的數(shù)量。 Innodb_buffer_pool_wait_free 當(dāng)把數(shù)據(jù)寫入將被刷新到磁盤的緩沖池時(shí),InnoDB必須等待的次數(shù)。寫入操作通常是在后臺(tái)進(jìn)行的,但是在InnoDB需要讀取頁面或者創(chuàng)建新頁時(shí),如果沒有可用頁面,就必須等待。 Innodb_buffer_pool_write_requests 往InnoDB緩沖池寫入的次數(shù)。 Innodb_data_fsyncs 由InnoDB執(zhí)行的“同步到磁盤”(sync-to-disk)操作的個(gè)數(shù)。 Innodb_data_pending_fsyncs 掛起的InnoDB數(shù)據(jù)“同步到磁盤”操作的個(gè)數(shù)。 Innodb_data_pending_reads 掛起的InnoDB“數(shù)據(jù)讀取”操作的個(gè)數(shù)。 Innodb_data_pending_writes 掛起的InnoDB“數(shù)據(jù)寫入”操作的個(gè)數(shù)。 Innodb_data_read InnoDB讀取的字節(jié)數(shù)。 Innodb_data_reads InnoDB“數(shù)據(jù)讀取”操作的個(gè)數(shù)。 Innodb_data_writes InnoDB“數(shù)據(jù)寫入”操作的個(gè)數(shù)。 Innodb_data_written InnoDB寫入的字節(jié)數(shù)。 Innodb_dblwr_pages_written 寫入InnoDB雙寫緩沖區(qū)的頁面數(shù)。 Innodb_dblwr_writes 寫入InnoDB雙寫緩沖區(qū)的次數(shù)。 Innodb_have_atomic_builtins 表明MySQL在構(gòu)建時(shí)是否啟用了原子操作。 Innodb_log_waits 當(dāng)把數(shù)據(jù)寫入將被刷新的日志緩沖池時(shí),InnoDB必須等待的次數(shù)。 Innodb_log_write_requests InnoDB日志文件的寫請(qǐng)求數(shù)。 Innodb_log_writes InnoDB日志文件的寫入次數(shù)。 Innodb_num_open_files InnoDB已打開的文件個(gè)數(shù)。此變量是在MySQL 5.6.2里引入的。 Innodb_os_log_fsyncs InnoDB日志文件“同步到磁盤”操作的個(gè)數(shù)。 Innodb_os_log_pending_fsyncs 掛起的InnoDB日志文件“同步到磁盤”操作的個(gè)數(shù)。 Innodb_os_log_pending_writes 掛起的InnoDB日志文件寫入操作的個(gè)數(shù)。 Innodb_os_log_written 寫入InnoDB日志文件的字節(jié)數(shù)。 Innodb_page_size InnoDB所使用的內(nèi)編譯頁面大小。通過它,可以把一個(gè)以頁為單位的測(cè)量值轉(zhuǎn)換為以字節(jié)為單位的值。默認(rèn)大小為16KB。 Innodb_pages_created InnoDB創(chuàng)建的頁數(shù)。 Innodb_pages_read InnoDB讀取的頁數(shù)。 Innodb_pages_written InnoDB寫入的頁數(shù)。 Innodb_row_lock_current_waits InnoDB正在等待獲得的行鎖個(gè)數(shù)。 Innodb_row_lock_time 獲得InnoDB行鎖所花費(fèi)的總時(shí)間(單位為毫秒)。 Innodb_row_lock_time_avg 獲得一個(gè)InnoDB行鎖所需要花費(fèi)的平均時(shí)間(單位為毫秒)。 Innodb_row_lock_time_max 獲得InnoDB行鎖所需要花費(fèi)的最大時(shí)間(單位為毫秒)。 Innodb_row_lock_waits InnoDB為獲得行鎖而等待的時(shí)間。 Innodb_rows_deleted 從InnoDB表刪除的行數(shù)。 Innodb_rows_inserted 插入InnoDB表的行數(shù)。 Innodb_rows_read 從InnoDB表讀取的行數(shù)。 Innodb_wors_updated 在InnoDB表里更新的行數(shù)。 Innodb_truncated_status_writes SHOW ENGINE INNODB STATUS的輸出內(nèi)容被截?cái)嗔硕嗌俅?。此變量是在MySQL 5.5.7里引入的。 查詢緩存狀態(tài)變量 下面這些狀態(tài)變量顯示的是與查詢緩存操作有關(guān)的信息。 Qcache_free_blocks 查詢緩存里的空閑內(nèi)存塊數(shù)量。 Qcache_free_memory 查詢緩存里的空閑內(nèi)存總量。 Qcache_hits 保存在緩存里的滿足查詢請(qǐng)求的查詢數(shù)量。 Qcache_inserts 在查詢緩存里注冊(cè)過的查詢數(shù)量。 Qcache_lowmem_prunes 為了給新的查詢結(jié)果騰出空間而從查詢緩存里丟棄的緩存查詢結(jié)果的數(shù)量。 Qcache_not_cached 無法緩存的或者因用戶使用了SQL_NO_CACHE關(guān)鍵字而被禁止緩存的查詢的數(shù)量。 Qcache_queries_in_cache 緩存里注冊(cè)的查詢數(shù)量。 Qcache_total_blocks 查詢緩存里的內(nèi)存塊數(shù)量。 SSL狀態(tài)變量 以下變量提供的是與SSL管理代碼有關(guān)的信息。其中的許多變量都可以反映出當(dāng)前會(huì)話的狀態(tài);并且當(dāng)會(huì)話實(shí)際并非安全連接時(shí),它們將為空白。只有服務(wù)器在構(gòu)建時(shí)包含了SSL支持,這些變量才可用。 Ssl_accept_renegotiates 在服務(wù)器模式里開始重新協(xié)商的次數(shù)。 Ssl_accepts 在服務(wù)器模式里開始的SSL/TLS握手的次數(shù)。 Ssl_callback_cache_hits 在服務(wù)器模式里從外部會(huì)話緩存成功地檢索到的會(huì)話數(shù)量。 Ssl_cipher 會(huì)話所使用的SSL密碼(協(xié)議)。(如果不存在有效的密碼,則為空。)可以利用此變量來判斷會(huì)話是否是已加密。 Ssl_cipher_list 可用的SSL密碼協(xié)議列表。 Ssl_client_connects 在客戶端模式里開始的SSL/TLS握手的次數(shù)。 Ssl_connect_renegotiates 在客戶端模式里開始重新協(xié)商的次數(shù)。 Ssl_ctx_verify_depth SSL上下文的驗(yàn)證深度。 Ssl_ctx_verify_mode SSL上下文的驗(yàn)證模式。 Ssl_default_timeout 默認(rèn)的SSL會(huì)話超時(shí)時(shí)間。 Ssl_finished_accepts 在服務(wù)器模式里成功建立的SSL/TLS會(huì)話數(shù)。 Ssl_finished_connects 在客戶端模式里成功建立的SSL/TLS會(huì)話數(shù)。 Ssl_server_not_after SSL證書的最后有效日期。此變量是在MySQL 5.6.3里引入的。 Ssl_server_not_before SSL證書的開始有效日期。此變量是在MySQL 5.6.3里引入的。 Ssl_session_cache_hits 在會(huì)話緩存里找到的SSL會(huì)話數(shù)。 Ssl_session_cache_misses 在會(huì)話緩存里未找到的SSL會(huì)話數(shù)。 Ssl_session_cache_mode 服務(wù)器所使用的SSL緩存類型。 Ssl_session_cache_overflows 因緩存已滿而被刪除的會(huì)話數(shù)。 Ssl_session_cache_size SSL會(huì)話緩存里存儲(chǔ)的會(huì)話數(shù)。 Ssl_session_cache_timeouts 已超時(shí)的會(huì)話數(shù)。 Ssl_session_reused 是否有會(huì)話再次利用了之前的某個(gè)會(huì)話。 Ssl_used_session_cache_entries 會(huì)話緩存里的會(huì)話數(shù)。 Ssl_verify_depth SSL驗(yàn)證深度。 Ssl_verify_mode SSL驗(yàn)證模式。 Ssl_version 會(huì)話的SSL協(xié)議版本。 |
|