參數(shù)說(shuō)明user= 運(yùn)行mysqld服務(wù)器的用戶名或用戶IDbind-address=默認(rèn)0.0.0.0,服務(wù)器監(jiān)聽(tīng)的網(wǎng)絡(luò)套接字綁定到一個(gè)單獨(dú)的地址port=監(jiān)聽(tīng)TCP/IP連接的端口號(hào),必須是1024或更高,除非以root身份運(yùn)行port-open-timeout=默認(rèn)值0,表示服務(wù)器應(yīng)等待多少秒的TCP/IP端口成為免費(fèi)的server-id=使用在主服務(wù)器和從服務(wù)器復(fù)制,以標(biāo)識(shí)自己的識(shí)別性chroot將啟動(dòng)mysqld服務(wù)器在一個(gè)封閉的環(huán)境中使用chroot()系統(tǒng)調(diào)用core-file=指定mysql崩潰時(shí)生成的core文件路徑core-file-size=指定mysql崩潰時(shí)生成的core文件大小skip-grant-tables服務(wù)器啟動(dòng)時(shí)不進(jìn)行權(quán)限檢查basedir=默認(rèn)/,指定mysql安裝目錄datadir=默認(rèn)basedir,指定數(shù)據(jù)安裝目錄socket=默認(rèn)/tmp/mysql.sock,指定監(jiān)聽(tīng)本地連接的Unix套接字文件pid-file=默認(rèn)/var/lib,指定創(chuàng)建mysql進(jìn)程ID文件的目錄tmpdir=默認(rèn)/tmp,指定臨時(shí)文件的目錄secure-auth=是否啟用安全認(rèn)證,老版本密碼是16字節(jié),新版本密碼是41字節(jié)safe-user-create是否禁用grant語(yǔ)句創(chuàng)建用戶skip-show-database是否只允許有SHOW DATABASES權(quán)限的用戶執(zhí)行SHOW DATABASESsecure-file-priv=指定數(shù)據(jù)導(dǎo)入導(dǎo)出的文件所在目錄,如果指定只能放在該目錄中skip-ssl不使用SSLssl-ca=SSL的CA文件路徑ssl-capath=代替ssl-ca,SSL的CA文件路徑ssl-cert=SSL的數(shù)字證書文件路徑ssl-cipher=允許使用SSL加密的密碼列表ssl-key=RSA私鑰文件路徑default-storage-engine=/default-table-type=設(shè)置默認(rèn)存儲(chǔ)引擎ansi使用標(biāo)準(zhǔn)(ANSI)SQL語(yǔ)法代替MySQL語(yǔ)法sql-mode=設(shè)置支持的sql語(yǔ)法。 ALLOW_INVALID_DATES ANSI_QUOTES ERROR_FOR_DIVISION_BY_ZERO HIGH_NOT_PRECEDENCE IGNORE_SPACE NO_AUTO_CREATE_USER NO_AUTO_VALUE_ON_ZERO NO_BACKSLASH_ESCAPES NO_DIR_IN_CREATE NO_ENGINE_SUBSTITUTION NO_FIELD_OPTIONS NO_KEY_OPTIONS NO_TABLE_OPTIONS NO_UNSIGNED_SUBTRACTION NO_ZERO_DATE NO_ZERO_IN_DATE ONLY_FULL_GROUP_BY PAD_CHAR_TO_FULL_LENGTH PIPES_AS_CONCAT REAL_AS_FLOAT STRICT_ALL_TABLES STRICT_TRANS_TABLES auto_increment_increment=設(shè)置自增列每次增加幾,默認(rèn)為1auto_increment_offset=設(shè)置自增列初始值,默認(rèn)為1div_precision_increment=設(shè)置用/操作符執(zhí)行除操作的結(jié)果的精確度的位數(shù),默認(rèn)4,最小0,最大30enable-named-pipe啟用命名管道支持。該選項(xiàng)只適用Windows NT、2000、XP和2003系統(tǒng),并且只適用支持命名管道連接的mysqld-nt和mysqld-max-nt服務(wù)器enable-pstack打印象征性的堆棧錯(cuò)誤信息. 只有在linux系統(tǒng)下,并且mysql有啟動(dòng)選項(xiàng) --with-pstack才可以使用engine-condition-pushdown簇相關(guān)下推特性event-scheduler=開(kāi)關(guān)事件調(diào)度skip-event-scheduler關(guān)閉事件調(diào)度exit-info這是不同標(biāo)志的一個(gè)位掩碼,你可以用來(lái)調(diào)試mysqld服務(wù)器。不要使用該選項(xiàng),除非你確切知道它在做什么old-alter-table設(shè)置服務(wù)器不使用優(yōu)化的方法執(zhí)行ALTER TABLEold-style-user-limits是否啟用舊式用戶limitspartition啟用或禁用用戶定義的分區(qū)支持skip-partition禁用用戶定義分區(qū)支持plugin_dir=指定插件目錄plugin-load=指定服務(wù)器啟動(dòng)時(shí)要加載的插件symbolic-links啟用支持符號(hào)鏈接,可以將MyISAM索引文件和數(shù)據(jù)文件放到除my.cnf指定的data目錄外的其他地方skip-symbolic-links禁用符號(hào)鏈接sync_frm設(shè)置當(dāng)任何非臨時(shí)表被創(chuàng)建時(shí),frm文件同步到磁盤temp-pool設(shè)置讓臨時(shí)文件使用的一小部分名稱updatable_views_with_limit設(shè)置當(dāng)視圖不包含主鍵的所有列,并且UPDATE語(yǔ)句中包含一個(gè)LIMIT子句時(shí),是否可以更新視圖consolewindows版本才支持,將錯(cuò)誤日志消息寫入stderr和stdout,即使指定了–log-error。如果使用該選項(xiàng),mysqld不關(guān)閉控制臺(tái)窗口allow-suspicious-udfs控制是否用戶定義的函數(shù)只有一個(gè)xxx符,用作可載入的主函數(shù)。默認(rèn)情況下,該選項(xiàng)被關(guān)閉,只有至少有一個(gè)附屬符的UDF 可以載入。這樣可以防止從未包含合法UDF的共享文件裝載函數(shù)。des-key-file=從該文件讀DES_ENCRYPT()和DES_DECRYPT()使用的默認(rèn)鍵group_concat_max_len=允許的GROUP_CONCAT()函數(shù)結(jié)果的最大長(zhǎng)度max_long_data_size=設(shè)定可以由mysql_stmt_send_long_data()這個(gè)C API函數(shù)所傳送的參數(shù)值的最大長(zhǎng)度,如果沒(méi)有在mysqld啟動(dòng)時(shí)設(shè)定,其默認(rèn)為max_allowed_packet變量的值。MySQL 5.6已經(jīng)棄用此變量。sysdate-is-now設(shè)置SYSDATE()返回的是當(dāng)前執(zhí)行時(shí)間而非當(dāng)前語(yǔ)句開(kāi)始執(zhí)行時(shí)間default_week_format=當(dāng)調(diào)用WEEK()或YEARWEEK()函數(shù)時(shí),如果不帶可選的mode參數(shù),則默認(rèn)為此變量設(shè)置的那個(gè)模式值。character-set-server=設(shè)置服務(wù)器字符集collation-server=設(shè)置默認(rèn)的collate排序集character-set-client-handshake不忽略客戶端發(fā)來(lái)的字符集skip-character-set-client-handshake忽略客戶端發(fā)來(lái)的字符集character-set-filesystem=設(shè)置文件系統(tǒng)的字符集character-sets-dir=指定存放字符集的目錄lower_case_file_system設(shè)置包含數(shù)據(jù)目錄的文件系統(tǒng)是否區(qū)分文件名的大小寫。如果此變量的值為ON,則文件名不區(qū)分大小寫lower_case_table_names=在執(zhí)行CREATE DATABASE和CREATE TABLE語(yǔ)句時(shí),設(shè)置如何處理數(shù)據(jù)庫(kù)名和表明所對(duì)應(yīng)的目錄名和文件名。 0:按照CREATE DATABASE和CREATE TABLE語(yǔ)句里給出的名字來(lái)創(chuàng)建磁盤文件,名字的比較會(huì)區(qū)分大小寫。在文件名區(qū)分大小寫的系統(tǒng)里如Linux,它是默認(rèn)設(shè)置。 1:把CREATE DATABASE和CREATE TABLE語(yǔ)句里給出的名字強(qiáng)制轉(zhuǎn)換為小寫形式,名字的比較不區(qū)分大小寫。在Windows中它是默認(rèn)設(shè)置。 2:按照CREATE DATABASE和CREATE TABLE語(yǔ)句里給出的名字來(lái)創(chuàng)建磁盤文件,但是在進(jìn)行比較時(shí)不區(qū)分大小寫。在Mac OS中它是默認(rèn)設(shè)置。當(dāng)沒(méi)有顯式設(shè)置lower_case_table_names變量時(shí),如果數(shù)據(jù)目錄所在的文件系統(tǒng)不區(qū)分文件名的大小寫,那么MySQL服務(wù)器將自動(dòng)把此變量設(shè)置為2。將此變量設(shè)置為非零值,也會(huì)使得表的別名不區(qū)分大小寫 lc-messages=設(shè)置錯(cuò)誤消息的語(yǔ)言環(huán)境lc-messages-dir=設(shè)置錯(cuò)誤消息的目錄default-time-zone=設(shè)置默認(rèn)服務(wù)器時(shí)區(qū)。該選項(xiàng)設(shè)置全局time_zone系統(tǒng)變量。如果未給出該選項(xiàng), 默認(rèn)時(shí)區(qū)與系統(tǒng)時(shí)區(qū)相同(用system_time_zone系統(tǒng)變量值給定)bootstrapmysql_install_db腳本使用該選項(xiàng)來(lái)創(chuàng)建MySQL授權(quán)表,不需要啟動(dòng)MySQL服務(wù)器memlock設(shè)置服務(wù)器進(jìn)程是否鎖定在內(nèi)存large-pages在Linux中,由于TLB損失減少,應(yīng)用程序可能通過(guò)使用大頁(yè)會(huì)獲得性能方面的提升sort_buffer_size=設(shè)置完成排序操作的線程使用的緩沖區(qū)大小table_open_cache=設(shè)置服務(wù)器能夠同時(shí)打開(kāi)表的最大個(gè)數(shù)table_definition_cache=設(shè)置服務(wù)器在其定義緩存里可以存放的表定義(來(lái)自.frm文件)個(gè)數(shù)range_alloc_block_size=設(shè)置在進(jìn)行范圍優(yōu)化時(shí)分配的內(nèi)存的塊大小query_prealloc_size=設(shè)置為分析和執(zhí)行SQL語(yǔ)句而分配的那個(gè)緩沖區(qū)的長(zhǎng)度query_alloc_block_size=設(shè)置在分析和執(zhí)行SQL語(yǔ)句時(shí)分配的臨時(shí)內(nèi)存塊大小stored_program_cache=設(shè)置服務(wù)器會(huì)為每個(gè)連接緩存多少存儲(chǔ)例程query_cache_type=查詢的Cache類型。 OFF :不進(jìn)行緩沖ON:進(jìn)行緩沖 DEMAND:對(duì)SELECT SQL_CACHE開(kāi)頭的查詢進(jìn)行緩沖 query_cache_size=查詢Cache的大小query_cache_min_res_unit=設(shè)置為把查詢結(jié)果存入查詢緩存里而分配的內(nèi)存塊大小query_cache_limit=設(shè)置查詢結(jié)果的最大緩存大小,超過(guò)這一大小的查詢結(jié)果將不會(huì)被緩存query_cache_wlock_invalidate設(shè)置當(dāng)表被寫鎖定時(shí),客戶端能否使用緩存查詢thread_handling=設(shè)置服務(wù)器用于處理客戶端連接的線程模型slow_launch_time=設(shè)置創(chuàng)建“慢”線程所占用的秒數(shù)thread_cache_size=設(shè)置線程緩沖區(qū)的所能容納的最大線程個(gè)數(shù)big-tables是否允許大數(shù)據(jù)表tmp_table_size=設(shè)置MySQL內(nèi)部使用的各種臨時(shí)表(即服務(wù)器在處理SQL語(yǔ)句的過(guò)程中自動(dòng)創(chuàng)建的表)的最大允許長(zhǎng)度skip-networking不監(jiān)聽(tīng)所有的TCP/IP連接。skip-name-resolve當(dāng)檢查客戶端連接時(shí),不解析主機(jī)名skip-host-cache每次客戶端連接時(shí),服務(wù)器執(zhí)行DNS查找禁止內(nèi)部主機(jī)緩存max_allowed_packet=服務(wù)器和客戶之間最大的通信的緩沖區(qū)長(zhǎng)度,即sql語(yǔ)句的長(zhǎng)度connect_timeout=服務(wù)器端在響應(yīng)“失敗的握手操作”信息給客戶端之前所等待的秒數(shù),默認(rèn)為10秒wait_timeout=以秒為單位設(shè)定所有SQL語(yǔ)句等待獲取元數(shù)據(jù)鎖(metadata lock)的超時(shí)時(shí)長(zhǎng),默認(rèn)為31536000(1年),有效取值范圍為0-31536000net_retry_count=設(shè)置中斷的讀取操作被重試的次數(shù)。profiling 設(shè)置是否開(kāi)啟語(yǔ)句性能分析profiling_history_size=保持分析信息的SQL語(yǔ)句數(shù)量optimizer_prune_level=設(shè)置優(yōu)化器如何處理中間計(jì)劃optimizer_search_depth=設(shè)置查詢優(yōu)化器搜索執(zhí)行計(jì)劃的深度optimizer_switch=被關(guān)閉或打開(kāi)的優(yōu)化器策略。其值為一個(gè)以逗號(hào)隔開(kāi)的flag=value設(shè)置列表,其中,value的值可以為on或off。你頁(yè)可以將標(biāo)志設(shè)置為default,以表示不管其默認(rèn)值為何值都需要返回它;或者將optimizer_switch自己設(shè)置為default,將所有的標(biāo)志都恢復(fù)成默認(rèn)值open-files-limit=設(shè)置在mysqld中可用的文件描述符數(shù)量thread_stack=設(shè)置每個(gè)線程的堆棧大小log-output=設(shè)置一般查詢?nèi)罩竞吐樵內(nèi)罩镜哪夸沴og-error=設(shè)置記錄錯(cuò)誤和啟動(dòng)消息的日志的目錄log-warnings設(shè)置是否在錯(cuò)誤日志中追加警告日志skip-log-warnings禁用警告日志slow-query-log設(shè)置慢查詢?nèi)罩臼欠駟⒂胹low_query_log_file=設(shè)置慢查詢?nèi)罩镜哪夸沴og-queries-not-using-indexes是否記錄未使用索引的查詢log-slow-admin-statements是否記錄慢查詢語(yǔ)句log-slow-slave-statements是否記錄從庫(kù)超過(guò)long_query_time秒數(shù)的查詢min-examined-row-limit=設(shè)置要檢查的行數(shù)大于等于N時(shí)才記錄為慢查詢general-log是否打開(kāi)查詢?nèi)罩灸J(rèn)為0(or OFF),打開(kāi)為1(or ON)general_log_file=是否生成查詢?nèi)罩疚募J(rèn)為host_name.logskip-slave-start設(shè)置從庫(kù)啟動(dòng)時(shí)不啟動(dòng)從庫(kù)線程read_only此變量控制的是從服務(wù)器是否會(huì)以只讀方式來(lái)處理客戶連接。默認(rèn)情況下,read_only的值為OFF,此時(shí),客戶端的更新都會(huì)以平常的方式(即它們都有權(quán)限這樣做)被接收。如果把此變量設(shè)置為ON,那么只有從主服務(wù)器那里接收到的語(yǔ)句(對(duì)于從服務(wù)器)或者擁有SUPER權(quán)限的客戶端所執(zhí)行的語(yǔ)句才能執(zhí)行更新操作;SET PASSWORD要求SUPER權(quán)限。read_only不會(huì)應(yīng)用于TEMPORARY表init_slave=指定每次SQL線程啟動(dòng)時(shí)都會(huì)執(zhí)行的SQL語(yǔ)句master-info-file=設(shè)置master.info的目錄sync_master_info=對(duì)于從服務(wù)器,如果這個(gè)變量為0(默認(rèn)值),那么從服務(wù)器不會(huì)強(qiáng)制將它的master.info文件同步到磁盤。實(shí)際上,正常的文件系統(tǒng)會(huì)執(zhí)行刷新操作。如果該值大于0,那么從服務(wù)器會(huì)在每個(gè)事件組處理完之后將該文件同步到磁盤slave_type_conversions=設(shè)置在從服務(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里引入的slave_transaction_retries=設(shè)置從服務(wù)器重試失敗事務(wù)的次數(shù)slave_exec_mode=設(shè)置mysql 主從復(fù)制中insert出現(xiàn)duplicate-key, update出現(xiàn)no-key-found 情況下的處理方式做控制slave-skip-errors=設(shè)置主從復(fù)制過(guò)程中從服務(wù)器可以自動(dòng)跳過(guò)的錯(cuò)誤號(hào)slave-load-tmpdir=默認(rèn)為/tmp,設(shè)置從庫(kù)復(fù)制LOAD DATA INFILE語(yǔ)句創(chuàng)建臨時(shí)文件的目錄slave_compressed_protocol設(shè)置是否要對(duì)從服務(wù)器和主服務(wù)器之間的通信進(jìn)行壓縮slave-max-allowed-packet=為從庫(kù)的IO線程和SQL線程設(shè)置數(shù)據(jù)包大小slave-net-timeout=設(shè)置從庫(kù)在等待多少秒后無(wú)響應(yīng)才認(rèn)為出現(xiàn)網(wǎng)絡(luò)故障master-retry-count=設(shè)置從庫(kù)連接主庫(kù)的重試次數(shù)show-slave-auth-info設(shè)置在主庫(kù)中是否顯示從庫(kù)用戶名和密碼report-host=設(shè)置將被通知給主庫(kù)的ipreport-password=設(shè)置將被通知給主庫(kù)的密碼report-port=設(shè)置將被通知給主庫(kù)的端口report-user=設(shè)置將被通知給主庫(kù)的賬號(hào)log-bin=設(shè)置二進(jìn)制日志的目錄log-bin-index=設(shè)置二進(jìn)制日志的索引文的目錄sync_binlog=設(shè)置每次寫入二進(jìn)制日志時(shí)是否同步二進(jìn)制日志到磁盤上binlog-format=可選為ROW, STATEMENT, MIXED,5.1.29后默認(rèn)為 STATEMENTmax_binlog_size=設(shè)置二進(jìn)制日志文件大小binlog_cache_size=在事務(wù)過(guò)程中容納二進(jìn)制日志SQL語(yǔ)句的緩存大小。二進(jìn)制日志緩存是服務(wù)器支持事務(wù)存儲(chǔ)引擎并且服務(wù)器啟用了二進(jìn)制日志(–log-bin選項(xiàng))的前提下為每個(gè)客戶端分配的內(nèi)存。如果你經(jīng)常使用大的,多語(yǔ)句事務(wù),你可以增加該值以獲得更有的性能。Binlog_cache_use和Binlog_cache_disk_use狀態(tài)變量可以用來(lái)調(diào)整該變量的大小max_binlog_cache_size=設(shè)置二進(jìn)制日志緩存的最大大小binlog_stmt_cache_size=設(shè)置在事務(wù)內(nèi)執(zhí)行非事務(wù)語(yǔ)句所需要的使用的緩存的大小max_binlog_stmt_cache_size=設(shè)置影響非事務(wù)表的語(yǔ)句所需要的使用的緩存的大小binlog-row-event-max-size=默認(rèn)為1024,最大規(guī)模的基于行的二進(jìn)制日志的最大大小,值應(yīng)該是256的倍數(shù)log-short-format設(shè)置是否記錄二進(jìn)制日志和慢查詢?nèi)罩緇og_slave_updates設(shè)置從庫(kù)是否將從主庫(kù)得到的變化增加到自己的二進(jìn)制日志文件中l(wèi)og-bin-trust-function-creators設(shè)置MySQL如何執(zhí)行存儲(chǔ)函數(shù)和觸發(fā)器創(chuàng)建log-bin-trust-routine-creators設(shè)置MySQL執(zhí)行創(chuàng)建存儲(chǔ)過(guò)程binlog_direct_non_transactional_updates可以同時(shí)更新事務(wù)型表和非事務(wù)型表的事務(wù),可能會(huì)導(dǎo)致住服務(wù)器里的更新與從服務(wù)器里的更新不一致,因?yàn)閷?duì)非事務(wù)型語(yǔ)句的更新,在它們出現(xiàn)在二進(jìn)制日志之前,對(duì)于其他會(huì)話來(lái)講是可見(jiàn)的。啟用此變量(默認(rèn)是禁用的)會(huì)導(dǎo)致非事務(wù)型更新被立即寫到二進(jìn)制日志里,而不是被緩存起來(lái),一直到事務(wù)提交之后才寫入。啟用此變量,僅對(duì)于那些使用基于語(yǔ)句的日志記錄進(jìn)行復(fù)制的語(yǔ)句才有效relay-log=設(shè)置從庫(kù)中繼日志的目錄relay-log-index=設(shè)置從庫(kù)中繼日志的索引文件的目錄relay-log-info-file=設(shè)置中繼日志log.info的目錄sync_relay_log=設(shè)置每次寫入中繼日志后,都將變化同步到磁盤sync_relay_log_info=設(shè)置每次寫入relay_log_info日志后,都將變化同步到磁盤relay_log_space_limit=設(shè)置全體中繼日志文件的最大允許大小relay_log_purge=設(shè)置從服務(wù)器會(huì)在用完一個(gè)中繼日志文件之后是否刪除relay_log_recovery設(shè)置從服務(wù)器刪除所有的還未處理的中繼日志后還可以再次從主服務(wù)器獲取它們binlog-do-db=告訴主服務(wù)器,如果當(dāng)前的數(shù)據(jù)庫(kù)(即USE選定的數(shù)據(jù)庫(kù))是db_name,應(yīng)將db_name中的更新記錄到二進(jìn)制日志中,其它所有沒(méi)有明顯指定的數(shù)據(jù)庫(kù)被忽略。如果使用該選項(xiàng),應(yīng)確保只對(duì)當(dāng)前的數(shù)據(jù)庫(kù)進(jìn)行更新。binlog-ignore-db=告訴主服務(wù)器,如果當(dāng)前的數(shù)據(jù)庫(kù)(即USE選定的數(shù)據(jù)庫(kù))是db_name,不應(yīng)將db_name中的更新保存到二進(jìn)制日志中。如果使用該選項(xiàng),應(yīng)確保只對(duì)當(dāng)前的數(shù)據(jù)庫(kù)進(jìn)行更新。replicate-do-db=根據(jù)不同的binlog格式有不同的行為replicate-ignore-db=根據(jù)不同的binlog格式有不同的行為replicate-do-table=限制復(fù)制更新指定的表replicate-ignore-table=限制不要復(fù)制更新指定的表replicate-wild-do-table=模式可以包含“%”和“_”通配符replicate-wild-ignore-table=模式可以包含“%”和“_”通配符replicate-same-server-id 設(shè)置相同的server-id是否要復(fù)制replicate-rewrite-db=轉(zhuǎn)換的默認(rèn)數(shù)據(jù)庫(kù)為to_nameinnodb_data_home_dir=設(shè)置相對(duì)于InnoDB表空間組件文件存放位置的目錄innodb_data_file_path=設(shè)置InnoDB表空間組件的文件目錄innodb_log_group_home_dir=設(shè)置InnoDB日志文件寫入的目錄innodb_log_files_in_group=設(shè)置日志組中每個(gè)日志文件的大小innodb_log_file_size=設(shè)置日志文件的大小innodb_open_files=設(shè)置是否啟動(dòng)獨(dú)立表空間innodb_change_buffering=設(shè)置InnoDB緩沖表更改輔助索引的延遲寫操作方式innodb_adaptive_hash_index=設(shè)置InnoDB是否要使用自適應(yīng)哈希索引innodb_autoinc_lock_mode=設(shè)置InnoDB用于生成AUTO_INCREMENT值的鎖定算法innodb_large_prefix設(shè)置對(duì)于那些使用COMPRESSED或DYNAMIC行格式的表,允許前綴最高達(dá)到3072個(gè)字節(jié)innodb_strict_mode設(shè)置InnoDB是否對(duì)表和索引的創(chuàng)建和修改語(yǔ)句的語(yǔ)法進(jìn)行較嚴(yán)格要求innodb_use_sys_malloc=設(shè)置InnoDB是否要使用系統(tǒng)內(nèi)存分配器innodb_buffer_pool_size=設(shè)置InnoDB用于緩沖表數(shù)據(jù)和索引的那個(gè)緩存的大小innodb_buffer_pool_instances=設(shè)置內(nèi)存緩沖池實(shí)例數(shù)量innodb_max_dirty_pages_pct=設(shè)置在InnoDB認(rèn)為需要將日志刷新到磁盤之前,InnoDB允許臟頁(yè)占用其緩沖池的百分比innodb_old_blocks_pct=設(shè)置InnoDB緩沖池的舊子列表所占百分比innodb_old_blocks_time=一個(gè)緩沖塊在第一次訪問(wèn)之后、下次訪問(wèn)之前,需要在InnoDB緩沖池的舊子列表里待多少毫秒才能移動(dòng)到新子列表里。默認(rèn)值為0。表示的是,插到舊子列表里的緩存塊,在第一次訪問(wèn)時(shí)會(huì)立即移到新子列表里去innodb_additional_mem_pool_size=設(shè)置InnoDB存儲(chǔ)引擎用來(lái)存放各種內(nèi)部數(shù)據(jù)結(jié)構(gòu)的內(nèi)存池的大小innodb_log_buffer_size=設(shè)置InnoDB事務(wù)日志緩沖區(qū)的大小innodb_flush_method=設(shè)置InnoDB用來(lái)刷新文件的方法innodb_use_native_aio設(shè)置在Linux里是否使用異步I/O子系統(tǒng)innodb_adaptive_flushing設(shè)置InnoDB是否會(huì)試圖通過(guò)使用工作負(fù)載水平更改緩沖池里臟頁(yè)刷新頻率的方式來(lái)避免I/O爆炸innodb_flush_log_at_trx_commit=InnoDB日志的刷新行為:0:每秒寫入一次日志,并刷新到磁盤一次1:每提交一次寫入一次日志,并刷新到磁盤一次2:每提交一次寫入一次日志,但是每秒刷新到磁盤一次innodb_io_capacity=設(shè)置InnoDB對(duì)于后臺(tái)任務(wù)每秒執(zhí)行I/O操作次數(shù)的近似限制innodb_read_io_threads=設(shè)置InnoDB在執(zhí)行讀取操作時(shí)會(huì)時(shí)候多少個(gè)線程innodb_write_io_threads=設(shè)置InnoDB在執(zhí)行寫入操作時(shí)會(huì)使用多少個(gè)線程innodb_read_ahead_threshold=如果InnoDB檢測(cè)到某個(gè)模式的順序頁(yè)面方位是由innodb_read_ahead_threshold或多個(gè)來(lái)自同一范圍(頁(yè)面組)的頁(yè)面構(gòu)成,那么它會(huì)在下一個(gè)范圍里執(zhí)行一個(gè)異步預(yù)讀取操作。默認(rèn)值為56。允許的取值范圍為0~64innodb_doublewrite設(shè)置InnoDB是否啟用了雙寫緩沖區(qū)innodb_purge_threads=InnoDB使用了多少后臺(tái)線程來(lái)實(shí)現(xiàn)清除操作(將所有事務(wù)都不再需要的待刪除行刪除掉)innodb_purge_batch_size=重做日志記錄的數(shù)量innodb_max_purge_lag=InnoDB維護(hù)著一個(gè)清除線程,它可以清除刪除操作或更新操作標(biāo)記的待刪除的行。如果小批量行被插入和刪除的頻率差不多相同,啊呢么清除線程可能會(huì)落后,進(jìn)而導(dǎo)致大量待刪除行不能及時(shí)清除,而占用著本應(yīng)該釋放的空間。innodb_max_purge_lag變量控制著如何延遲INSERT、DELETE和UPDATE語(yǔ)句,讓它們適當(dāng)放慢速度以便清除線程能夠追上它們的進(jìn)度。默認(rèn)為0(即不延遲)。如果把此變量設(shè)置為一個(gè)非零值,那么延遲大約是((n/innodb_max_purge_lag) x10 ) – 5毫秒,其中的n是在執(zhí)行過(guò)程中會(huì)把一些行標(biāo)記為待刪除的事務(wù)的數(shù)量innodb_file_per_table如果此變量被設(shè)置為0(默認(rèn)值),InnoDB將在其系統(tǒng)表空間里創(chuàng)建新表。如果此變量被設(shè)置為1,InnoDB將為每個(gè)新表分別創(chuàng)建一個(gè)獨(dú)立表空間:在數(shù)據(jù)庫(kù)目錄里為每一個(gè)新表單獨(dú)創(chuàng)建一個(gè).ibd文件來(lái)存放該表的內(nèi)容。在這種情況下,系統(tǒng)表空間只會(huì)用于InnoDB數(shù)據(jù)目錄條目,而不會(huì)用于數(shù)據(jù)或索引存儲(chǔ)。此變量只影響InnoDB如何創(chuàng)建新表。不管如何更改此變量的值,InnoDB存儲(chǔ)引擎總是可以訪問(wèn)已經(jīng)在系統(tǒng)表空間或獨(dú)立表空間里創(chuàng)建的表innodb_autoextend_increment=當(dāng)某個(gè)自擴(kuò)展表空間快要被填滿時(shí),InnoDB存儲(chǔ)引擎將自動(dòng)使用此變量的值作為第增量去增加那個(gè)表空間的大小。指定值的單位為MB。此變量的默認(rèn)值是8,最大值是1000innodb_file_format=如果啟用了innodb_file_per_table,則它指的是InnoDB新表所使用的格式。默認(rèn)格式為Antelope;另一個(gè)允許值為Barracuda。使用Barracuda可以啟用不被Antelope支持的功能,如COMPRESSED行格式innodb_file_format_check=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=參考innodb_file_format_check的描述innodb_stats_on_metadataInnoDB是否要更新與那些與表元數(shù)據(jù)訪問(wèn)語(yǔ)句(如SHOW INDEX或SHOW TABLE STATUS)有關(guān)的統(tǒng)計(jì)信息,或者更新那些與訪問(wèn)STATISTICS表和執(zhí)行TABLES INFORMATION_SCHEMA語(yǔ)句所得到的各張表有關(guān)的統(tǒng)計(jì)信息。其效果與運(yùn)行ANALYZE TABLE相類似。默認(rèn)值為ONinnodb_stats_sample_pages=在MySQL 5.5里,它指的是用于估計(jì)統(tǒng)計(jì)信息的InnoDB樣本的索引頁(yè)數(shù)量。默認(rèn)值為8。自MySQL 5.6.3起,此變量已被棄用,請(qǐng)使用innodb_stats_transient_sample_pagesinnodb_stats_method=服務(wù)器在InnoDB表統(tǒng)計(jì)器索引鍵的分布概率時(shí),應(yīng)該把NULL值視為相同,還是視為不同。可設(shè)置的值包括有:nulls_equal(所有的NULL值在同一個(gè)組里)、nulls_unequal(每個(gè)NULL值單獨(dú)成為一組)或nulls_ignored(忽略NULL值)timed_mutexes =設(shè)置是否要搜集InnoDB的互斥時(shí)間信息,默認(rèn)值為OFFinnodb-status-file =設(shè)置在data目錄中的innodb_statusinnodb_fast_shutdown=當(dāng)此變量的值為0或1時(shí),它表示的是InnoDB是否使用其較快速的關(guān)機(jī)方法(它會(huì)跳過(guò)某些正常情況下會(huì)執(zhí)行的操作)。當(dāng)取值為2時(shí),InnoDB會(huì)刷新其日志,然后停止innodb_force_load_corrupted =設(shè)置InnoDB在啟動(dòng)時(shí)是否加載已標(biāo)記為損壞的表innodb_force_recovery=此變量的值通常為0,但是可以被設(shè)置為1~6的某個(gè)值,以便讓服務(wù)器在崩潰后即使InnoDB恢復(fù)失敗也可以再次啟動(dòng)innodb_checksums設(shè)置InnoDB表是否啟用校驗(yàn)計(jì)算transaction-isolation=可供設(shè)置的值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE,默認(rèn)的值為: REPEATABLE-READ,事務(wù)隔離級(jí)別設(shè)置的不同,對(duì)二進(jìn)制日志登記格式影響非常大transaction_prealloc_size=為處理構(gòu)成某個(gè)事務(wù)的語(yǔ)句而分配的那個(gè)緩沖區(qū)的大小。與那些由transaction_alloc_block_size變量控制的內(nèi)存分配塊不同,這個(gè)緩沖區(qū)在最后兩條語(yǔ)句之間不會(huì)被釋放transaction_alloc_block_size=為處理這樣一些語(yǔ)句而分配的臨時(shí)內(nèi)存的塊大小:在事務(wù)提交之時(shí),在將事務(wù)寫入二進(jìn)制日志之前,需要存儲(chǔ)為事務(wù)的一部分的語(yǔ)句completion_type=事務(wù)結(jié)束類型:1、如果該值為0(默認(rèn)),COMMIT和ROLLBACK不受影響; 2、如果該值為1,COMMIT和ROLLBACK分別等同于COMMIT AND CHAIN和ROLLBACK AND CHAIN。(新事務(wù)用剛剛結(jié)束的事務(wù)相同的間隔等級(jí)立即啟動(dòng)); 3、如果該值為2,COMMIT和ROLLBACK分別等同于COMM它RELEASE和ROLLBACK RELEASE(事務(wù)終止后,服務(wù)器斷開(kāi));innodb_support_xa設(shè)置支持XA事務(wù)innodb_table_locks當(dāng)禁用自動(dòng)提交模式時(shí),InnoDB會(huì)如何處理LOCK TABLE語(yǔ)句,以獲得InnoDB表的寫鎖。如果此變量的值是ON(默認(rèn)值),InnoDB將申請(qǐng)到一個(gè)內(nèi)部表鎖。如果此變量的值是OFF,InnoDB要一直等到?jīng)]有任何其他線程鎖定那個(gè)表時(shí)才能執(zhí)行LOCK TABLE語(yǔ)句。禁用此變量可以在一定程度上防止應(yīng)用程序在自動(dòng)提交模式已被禁用的情況下發(fā)出LOCK TABLE語(yǔ)句時(shí)遭遇死鎖innodb_lock_wait_timeout=設(shè)置等待某個(gè)事務(wù)鎖的秒數(shù)innodb_locks_unsafe_for_binlog設(shè)置InnoDB如何處理索引行鎖定innodb_spin_wait_delay=設(shè)置旋轉(zhuǎn)鎖的兩次輪詢之間的最大等待值innodb_sync_spin_loops=設(shè)置線程在被掛起之前等待InnoDB釋放互斥信號(hào)的次數(shù)innodb_commit_concurrency=設(shè)置可以同時(shí)提交多少個(gè)線程innodb_thread_concurrency=設(shè)置InnoDB嘗試維護(hù)的線程數(shù)量上限innodb_concurrency_tickets=當(dāng)某個(gè)線程想進(jìn)入InnoDB時(shí),只有當(dāng)線程數(shù)量小于innodb_commit_concurrencyinnodb_replication_delay=如果在從服務(wù)器上已達(dá)到innodb_thread_concurrency表明的那個(gè)限制,那么此變量便是復(fù)制線程的延遲時(shí)間(單位為毫秒)。默認(rèn)值為0innodb_thread_sleep_delay=設(shè)置InnoDB線程在被放入InnoDB等待隊(duì)列之前休眠的時(shí)間(單位為毫秒)innodb_rollback_on_timeout設(shè)置InnoDB存儲(chǔ)引擎在事務(wù)超時(shí)時(shí)的行為innodb_rollback_segments=在一個(gè)事務(wù)里,InnoDB在系統(tǒng)表空間里會(huì)使用多少回滾段。默認(rèn)值為128。此變量是在MySQL 5.5.11里引入的。在5.6.3里,它被替換成了innodb_undo_logsmyisam_data_pointer_size=設(shè)置MyISAM索引文件的行指針的字節(jié)大小myisam_use_mmap設(shè)置服務(wù)器在讀寫MyISAM表時(shí)是否需要使用內(nèi)存映射keep_files_on_create如果在創(chuàng)建MySAM表的CREATE TABLE語(yǔ)句里明確給出了DATA DIRECTORY或INDEX DIRECTORY選項(xiàng),并且服務(wù)器在給定的目錄里分別找到了一個(gè)已有的數(shù)據(jù)文件或索引文件,那么它會(huì)返回一個(gè)錯(cuò)誤。當(dāng)沒(méi)有使用DATA DIRECTORY或INDEX DIRECTORY選項(xiàng)來(lái)指定數(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ò)誤myisam-block-size=設(shè)置被MyISAM索引頁(yè)使用的塊大小delay-key-write=僅用于MyISAM表,且要求在創(chuàng)建表時(shí)使用了DELAY_KEY_WRITE選項(xiàng)。在啟用時(shí),key buffer不會(huì)在每一次索引更新時(shí)都予以清空,而是在表關(guān)閉時(shí)才執(zhí)行key buffer清空操作。OFF表示忽略DELAY_KEY_WRITE,ON表示MySQL接受CREATE TABLE時(shí)使用的任何DELAY_KEY_WRITE選項(xiàng),ALL表示所有新打開(kāi)的表遵循此特性preload_buffer_size設(shè)置MySQL服務(wù)器在使用LOAD INDEX語(yǔ)句預(yù)加載有關(guān)索引時(shí)會(huì)分配一個(gè)多大的緩沖區(qū)myisam_stats_method=服務(wù)器在為MyISAM表統(tǒng)計(jì)其索引鍵的分布概率時(shí),應(yīng)該把NULL值視為相同,還是視為不同。可設(shè)置的值包括有:nulls_equal(所有的NULL值在同一個(gè)組里)、nulls_unequal(每個(gè)NULL值單獨(dú)成為一組)或nulls_ignored(忽略NULL值)myisam-recover-options=用于創(chuàng)建啟動(dòng)MySQL時(shí)MyISAM 的自動(dòng)恢復(fù)。myisam‐recover‐options選項(xiàng)能使用以下值:DEFAULT:不用備份,強(qiáng)制,或快速檢查進(jìn)行恢復(fù)。BACKUP:如果數(shù)據(jù)文件在恢復(fù)時(shí)被更改,將MYD 文件的備份保存為 tbl_name‐datetime.BAK。FORCE:即使會(huì)從.MYD 文件丟失多于一行仍運(yùn)行恢復(fù)。QUICK:如果沒(méi)有任何delete塊就不檢查行。myisam_repair_threads=設(shè)置在修復(fù)操作過(guò)程中用來(lái)創(chuàng)建MyISAM表使用的線程數(shù)key_buffer_size=設(shè)置用于緩存MyISAM表索引塊的緩沖區(qū)大小key_cache_block_size=設(shè)置MyISAM鍵緩存的塊大小key_cache_age_threshold=設(shè)置在被移到暖子鏈之前,未使用的緩沖塊在MyISAM鍵緩存的熱子鏈里可以保留多久key_cache_division_limit=在MySQL的Key Cache中所使用的LRU算法并不像傳統(tǒng)的算法一樣僅僅只是通過(guò)訪問(wèn)頻率以及最后訪問(wèn)時(shí)間來(lái)通過(guò)一個(gè)唯一的鏈表實(shí)現(xiàn),而是將其分成了兩部分。一部分用來(lái)存放使 用比較頻繁的Hot Cache Lock(Hot Chain),被稱作Hot Area,另外一部分則用來(lái)存放使用不太頻繁的Warm Cache Block(Warm Chain),也被稱作Warm Area。這樣做的目的主要是為了保護(hù)使用比較頻繁的Cache Block更不容易被換出。而key_cache_division_limit參數(shù)則正是用于告訴MySQL該如何劃分整個(gè)Cache Chain劃分為Hot Chain和Warm Chain兩部分,參數(shù)值為Warm Chain占整個(gè)Chain 的百分比值。設(shè)置范圍1~100,系統(tǒng)默認(rèn)為100,也就是只有Warm Chainread_buffer_size=設(shè)置對(duì)表進(jìn)行順序掃描的那個(gè)線程所使用的緩存區(qū)的大小read_rnd_buffer_size=設(shè)置在排序后,讀取結(jié)果數(shù)據(jù)的緩沖區(qū)大小delayed_queue_size=在某個(gè)特定的管理程序隊(duì)列中有多少個(gè)行未執(zhí)行,則INSERT DELAYED處理線程會(huì)等待直到隊(duì)列中有空間為止,防止mysqld不會(huì)把所有存儲(chǔ)器都用于被延遲的存儲(chǔ)隊(duì)列max_delayed_threads=設(shè)置為處理INSERT DELAYED語(yǔ)句而允許創(chuàng)建的最大線程數(shù)delayed_insert_limit=插入delayed_insert_limit 延遲行后,INSERT DELAYED 處理器線程檢查是否有掛起的SELECT語(yǔ)句。如果有,在繼續(xù)插入延遲的行之前,允許它們先執(zhí)行delayed_insert_timeout=INSERT DELAYED 處理器線程的隊(duì)列中沒(méi)有多余的行時(shí)表被解鎖,多長(zhǎng)時(shí)間內(nèi)沒(méi)有收到新的INSERT DELAYED,則終止ft_boolean_syntax=使用IN BOOLEAN MODE執(zhí)行的布爾全文搜索支持的操作符系列,默認(rèn)變量值為 '+ -><()~*:“”&ft_max_word_len=ULLTEXT索引中所包含的字的最大長(zhǎng)度。注釋:更改該變量后必須重建FULLTEXT索引。應(yīng)使用REPAIR TABLE tbl_name QUICKft_min_word_len=FULLTEXT索引中所包含的字的最小長(zhǎng)度。注:更改該變量后必須重建FULLTEXT索引。應(yīng)使用REPAIR TABLE tbl_name QUICKft_query_expansion_limit=使用WITH QUERY EXPANSION進(jìn)行全文搜索的最大匹配數(shù)ft_stopword_file=用于讀取全文搜索的停止字清單的文件。該文件中的所有字都會(huì)用到;注釋不重要。默認(rèn)情況下,使用內(nèi)嵌式停止字清單(如myisam/ft_static.c文件中所定義)。將該變量設(shè)置為空字符串('’)則禁用停止字過(guò)濾。注:更改該變量或停止字文件的內(nèi)容后必須重建FULLTEXT索引。應(yīng)使用REPAIR TABLE tbl_name QUICKbulk_insert_buffer_size=MyISAM使用專用樹(shù)狀緩存來(lái)使INSERT、SELECT、INSERT … VALUES (…)、(…)和LOAD DATA INFILE的大塊插入更快。該變量用每線程的字節(jié)數(shù)限制緩存樹(shù)的大小。將它設(shè)置為0禁用優(yōu)化。注:只有向非空表添加數(shù)據(jù)時(shí)才使用該緩存,默認(rèn)值是8MBmyisam_sort_buffer_size=在執(zhí)行類似ALTER TABLE、CREATE INDEX和REPAIR TABLE這樣的操作期間,需要分配緩沖區(qū),以便對(duì)MyISAM表的索引進(jìn)行排序。此變量指定的便是該緩沖區(qū)的大小myisam_max_sort_file_size=對(duì)于REPAIR TABLE、ALTER TABLE或LOAD DATA等語(yǔ)句,在對(duì)MyISAM表進(jìn)行重建時(shí),既可以使用一個(gè)臨時(shí)文件,頁(yè)可以使用鍵緩存。具體使用哪一種方法由這個(gè)變量的值來(lái)決定。如果臨時(shí)文件的大小可能會(huì)大于這個(gè)值,則需要使用鍵緩存myisam_mmap_size=設(shè)置壓縮時(shí)的MyISAM表文件在進(jìn)行內(nèi)存映射時(shí)使用的最大內(nèi)存量external-locking外部鎖定用于多進(jìn)程條件下為MyISAM數(shù)據(jù)表進(jìn)行鎖定。當(dāng)外部鎖定(external-locking)起作用時(shí),每個(gè)進(jìn)程若要訪問(wèn)數(shù)據(jù)表,則必須等待之前的進(jìn)程完成操作并解除鎖定。由于服務(wù)器訪問(wèn)數(shù)據(jù)表時(shí)經(jīng)常需要等待解鎖,因此在單服務(wù)器環(huán)境下external locking會(huì)讓MySQL性能下降skip-external-locking 禁用外部鎖定concurrent_insert=對(duì)于在數(shù)據(jù)文件的中間沒(méi)用空洞的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)值為1skip-concurrent-insert禁用concurrent-insertlow-priority-updates給DML比SELECT更低的優(yōu)先級(jí)performance_schema=開(kāi)啟performance_schema性能優(yōu)化的引擎performance_schema_events_waits_history_long_size=events_waits_history_long表的行數(shù)performance_schema_events_waits_history_size=events_waits_history表的每個(gè)線程的行數(shù)performance_schema_max_cond_classes=條件工具的最大數(shù)量performance_schema_max_cond_instances=條件工具對(duì)象的最大數(shù)量performance_schema_max_file_classes=文件工具的最大數(shù)量performance_schema_max_file_handles=打開(kāi)文件對(duì)象的最大數(shù)量performance_schema_max_file_instances=工具文件對(duì)象的最大數(shù)量performance_schema_max_mutex_classes=互斥鎖工具的最大數(shù)量performance_schema_max_mutex_instances=互斥鎖對(duì)象的最大數(shù)量performance_schema_max_rwlock_classes=讀寫鎖工具的最大數(shù)量performance_schema_max_rwlock_instances=讀寫鎖對(duì)象的最大數(shù)量performance_schema_max_table_handles=打開(kāi)表對(duì)象的最大數(shù)量performance_schema_max_table_instances=打開(kāi)表對(duì)象工具的最大數(shù)量performance_schema_max_thread_classes=線程工具的最大數(shù)量performance_schema_max_thread_instances=線程對(duì)象工具的最大數(shù)量 |
|