本篇內(nèi)容介紹了“MySQL中my.cnf文件的選項(xiàng)設(shè)置”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
mysqld服務(wù)器維護(hù)兩種變量。全局變量影響服務(wù)器的全局操作。會話變量影響具體客戶端連接相關(guān)操作。
可以在選項(xiàng)文件或命令行中設(shè)置全局變量。
用Set命令設(shè)置會話變量,當(dāng)然它也可以設(shè)置全局變量。
就像oracle里面的初始化參數(shù)文件一樣。下面是一些常用的選項(xiàng)說明,MySQL的管方文檔上也有。
[@more@]
如
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;
如果你想用SET語句限制系統(tǒng)變量可設(shè)的最大值,可以在服務(wù)器啟動(dòng)時(shí)通過--maximum-var_name形式的選項(xiàng)來指定。
例如,要想防止query_cache_size的值運(yùn)行時(shí)超過32MB,使用選項(xiàng)--maximum-query_cache_size=32M。
mysqld_safe選項(xiàng)
--basedir=path
MySQL安裝目錄的路徑。
--core-file-size
mysqld能夠創(chuàng)建的內(nèi)核文件的大小。選項(xiàng)值傳遞給ulimit -c。
--datadir=path
數(shù)據(jù)目錄的路徑。
--defaults-file=path
讀取的代替通用選項(xiàng)文件的選項(xiàng)文件名。如果給出,必須首選該選項(xiàng)。
--log-error=path
將錯(cuò)誤日志寫入給定的文件。
-nice=priority
使用nice程序根據(jù)給定值來設(shè)置服務(wù)器的調(diào)度優(yōu)先級。
--open-files-limit=count
mysqld能夠打開的文件的數(shù)量。選項(xiàng)值傳遞給 ulimit -n。請注意你需要用root啟動(dòng)mysqld_safe來保證正確工作!
--pid-file=path
進(jìn)程ID文件的路徑。
--port=port_num
用來幀聽TCP/IP連接的端口號。端口號必須為1024或更大值,除非MySQL以root系統(tǒng)用戶運(yùn)行。
每個(gè)mysqld的Unix套接字文件和TCP/IP端口號必須不同。
--ledir=path
包含mysqld程序的目錄的路徑。使用該選項(xiàng)來顯式表示服務(wù)器位置。
--no-defaults
不要讀任何選項(xiàng)文件。如果給出,必須首選該選項(xiàng)。
--skip-character-set-client-handshake
忽略客戶端發(fā)送的字符集信息,使用服務(wù)器的默認(rèn)字符集。
--socket=path
用于本地連接的Unix套接字文件。
每個(gè)mysqld的Unix套接字文件和TCP/IP端口號必須不同。
--timezone=zone
為給定的選項(xiàng)值設(shè)置TZ時(shí)區(qū)環(huán)境變量。
--user={user_name | user_id}
以用戶名user_name或數(shù)字用戶ID user_id運(yùn)行mysqld服務(wù)器。
該"用戶"指系統(tǒng)登錄賬戶,而不是 授權(quán)表中的MySQL用戶。
mysqld命令行選項(xiàng)
mysqld從[mysqld]和[server]組讀取選項(xiàng)
--ansi
使用標(biāo)準(zhǔn)(ANSI)SQL語法代替MySQL語法。
--basedir=path, -b path
MySQL安裝目錄的路徑。通常所有路徑根據(jù)該路徑來解析。
--bootstrap
mysql_install_db腳本使用該選項(xiàng)來創(chuàng)建MySQL授權(quán)表,不需要啟動(dòng)MySQL服務(wù)器
--console
將錯(cuò)誤日志消息寫入stderr和stdout,即使指定了--log-error。
--character_sets_dir=path
字符集安裝的目錄。
--chroot=path
通過chroot()系統(tǒng)調(diào)用在啟動(dòng)過程中將mysqld服務(wù)器放入一個(gè)封閉環(huán)境中。這是推薦的一個(gè)安全措施。請注意使用該選項(xiàng)可以 限制LOAD DATA INFILE和SELECT ... INTO OUTFILE。
--character_set_server=charset
使用charset作為 默認(rèn)服務(wù)器字符集。
--core_file
如果mysqld終止,寫內(nèi)核文件。
--datadir=path, -h path
數(shù)據(jù)目錄的路徑。
--default_table_type=type
設(shè)置表的默認(rèn)類型。
--debug[=debug_options], -# [debug_options]
如果MySQL配置了--with-debug,你可以使用該選項(xiàng)來獲得一個(gè)跟蹤文件,跟蹤mysqld正進(jìn)行的操作。debug_options字符串通常為'd:t:o,file_name'。
--default_time_zone=type
設(shè)置默認(rèn)服務(wù)器時(shí)區(qū)。該選項(xiàng)設(shè)置全局time_zone系統(tǒng)變量。默認(rèn)時(shí)區(qū)與系統(tǒng)時(shí)區(qū)相同(用system_time_zone系統(tǒng)變量值給定)
--delay_key_write[= OFF | ON | ALL]
如何使用DELAYED KEYS選項(xiàng)。鍵寫入延遲會造成再次寫MyISAM表時(shí)鍵緩沖區(qū)不能被清空。該選項(xiàng)只適用MyISAM表。
OFF DELAY_KEY_WRITE被忽略。
ON MySQL在CREATE TABLE中用DELAY_KEY_WRITE選項(xiàng)。這是 默認(rèn)值。
ALL 用啟用DELAY_KEY_WRITE選項(xiàng)創(chuàng)建表的相同方法對所有新打開表的進(jìn)行處理。
如果啟用了DELAY_KEY_WRITE,說明使用該項(xiàng)的表的鍵緩沖區(qū)在每次更新索引時(shí)不被清空,只有關(guān)閉表時(shí)才清空。
但如果你使用該特性,你應(yīng)用--myisam_recover選項(xiàng)啟動(dòng)服務(wù)器,為所有MyISAM表添加自動(dòng)檢查。
--external_locking
用系統(tǒng)鎖定。請注意如果你在lockd不能完全工作的系統(tǒng)上使用該選項(xiàng)(例如在Linux中),mysqld容易死鎖。
如果你在許多MySQL進(jìn)程中使用該選項(xiàng)來更新MyISAM表,你必須確保滿足下述條件:
使用正被另一個(gè)進(jìn)程更新的表的查詢的緩存不可使用。
不應(yīng)在共享表中使用--delay-key-write=ALL或DELAY_KEY_WRITE=1。
最簡單的方法是結(jié)合使用--external-locking和--delay-key-write=OFF --query-cache-size=0。
(默認(rèn)不能實(shí)現(xiàn),因?yàn)樵谠S多設(shè)置中,結(jié)合使用上述選項(xiàng)很有用)。
--flush
執(zhí)行SQL語句后向硬盤上清空更改。一般情況執(zhí)行SQL語句后 MySQL向硬盤寫入所有更改,讓操作系統(tǒng)處理與硬盤的同步。
--init_file=file
啟動(dòng)時(shí)從該文件讀SQL語句。每個(gè)語句必須在同一行中并且不應(yīng)包括注釋。
--language=lang_name, -L lang_name
用給定語言給出客戶端錯(cuò)誤消息。默認(rèn)情況下,mysqld用英語給出錯(cuò)誤消息。
--large_pages
一些硬件/操作系統(tǒng)架構(gòu)支持大于 默認(rèn)值(通常4 KB)的內(nèi)存頁。實(shí)際支持取決于使用的硬件和OS。
大量訪問內(nèi)存的應(yīng)用程序通過 使用較大的頁,降低了Translation Lookaside Buffer (TLB)損失,可以改善性能。
默認(rèn)情況下該選項(xiàng)被禁用。
---log[=file], -l [file]
如果你想要知道m(xù)ysqld內(nèi)部發(fā)生了什么,你應(yīng)該用--log[=file_name]或-l [file_name]選項(xiàng)啟動(dòng)它。如果沒有給定file_name的值, 默認(rèn)名是host_name.log。所有連接和語句被記錄到日志文件。當(dāng)你懷疑在客戶端發(fā)生了錯(cuò)誤并想確切地知道該客戶端發(fā)送給mysqld的語句時(shí),該日志可能非常有用。
mysqld按照它接收的順序記錄語句到查詢?nèi)罩?。這可能與執(zhí)行的順序不同。
--log_bin=[file]
二進(jìn)制日志文件。將更改數(shù)據(jù)的所有查詢記入該文件。用于備份和復(fù)制。
建議指定一個(gè)文件名,否則MySQL使用host_name-bin作為日志文件基本名。
運(yùn)行服務(wù)器時(shí)若啟用二進(jìn)制日志則性能大約慢1%。
--binlog_do_db=db_name
告訴主服務(wù)器,如果當(dāng)前的數(shù)據(jù)庫(即USE選定的數(shù)據(jù)庫)是db_name,應(yīng)將更新記錄到二進(jìn)制日志中。
--binlog_ignore_db=db_name
告訴主服務(wù)器,如果當(dāng)前的數(shù)據(jù)庫(即USE選定的數(shù)據(jù)庫)是db_name,不應(yīng)將更新保存到二進(jìn)制日志中。
--log_error[=file]
該文件的日志錯(cuò)誤和啟動(dòng)消息.
如果你不指定文件名,MySQL使用host_name.err作為文件名。如果文件名沒有擴(kuò)展名,則加上.err擴(kuò)展名。
--log_isam[=file]
將所有MyISAM更改記入該文件
--log_slow_queries[=file]
將所有執(zhí)行時(shí)間超過long_query_time 秒的查詢記入該文件。
--log_warnings, -W
將警告例如Aborted connection...打印到錯(cuò)誤日志。建議啟用該選項(xiàng),默認(rèn)也是啟用的。
--memlock
將mysqld 進(jìn)程鎖定在內(nèi)存中。請注意使用該選項(xiàng)時(shí)需要以root運(yùn)行服務(wù)器,但從安全考慮并不是一個(gè)好注意。
--myisam_recover [=option[,option...]]]
存儲引擎MyISAM設(shè)置為恢復(fù)模式。該選項(xiàng)值是DEFAULT、BACKUP、FORCE或QUICK值的任何組合。
如果你指定多個(gè)值,用逗號間隔開。
使用如果該選項(xiàng),當(dāng)mysqld打開MyISAM表時(shí),檢查是否表標(biāo)記為崩潰或沒有正確關(guān)閉。
如果是這種情況,mysqld則檢查 表。如果表被破壞,mysqld試圖維護(hù)它。
DEFAULT 與沒有使用--myisam-recover選項(xiàng)相同。
BACKUP 如果在恢復(fù)過程中,數(shù)據(jù)文件被更改了,將tbl_name.MYD文件備份為tbl_name-datetime.BAK。
FORCE 即使.MYD文件將丟掉多個(gè)行也進(jìn)行恢復(fù)。
QUICK 如果沒有刪除塊,不要檢查表中的行。
--open_files_limit=count
用來更改mysqld文件描述符的數(shù)量。
--pid_file=path
mysqld_safe使用的進(jìn)程ID文件的路徑。
--port=port_num, -P port_num
幀聽TCP/IP連接時(shí)使用的端口號。
--safe_mode
跳過一些優(yōu)化階段。
--skip_bdb
禁用BDB存儲引擎。這樣可以節(jié)省內(nèi)存,并可能加速某些操作。如果你需要BDB表則不要使用該選項(xiàng)。
--skip_concurrent_insert
關(guān)閉在同一時(shí)間在MyISAM表中選擇和插入的能力。(只有你發(fā)現(xiàn)缺陷時(shí)才使用該選項(xiàng))。
--skip_grant_tables
該選項(xiàng)使服務(wù)器不使用權(quán)限系統(tǒng)。該權(quán)限允許訪問服務(wù)器的用戶不受限制地訪問所有數(shù)據(jù)庫
--skip_external_locking
不要使用系統(tǒng)鎖定。
--skip_host_cache
為了更快地在名稱-IP之間進(jìn)行解析,不要使用內(nèi)部主機(jī)名緩存。相反,每次客戶端連接時(shí)查詢DNS服務(wù)器。
--skip_innodb
禁用InnoDB存儲引擎。這樣可以節(jié)省內(nèi)存,并可能加速某些操作。
--skip_networking
不幀聽TCP/IP連接。必須通過命名管道或共享內(nèi)存(在Windows中)或Unix套接字文件(在Unix中)完成mysqld的相互操作。
對于只允許本地客戶端的系統(tǒng),大力推薦該選項(xiàng)。
--socket=path
在Unix中,該選項(xiàng)指定用于本地連接的Unix套接字文件。
--skip_safemalloc
如果MySQL配置了--with-debug=full,所有MySQL程序在內(nèi)存分配和釋放時(shí)檢查內(nèi)存是否溢出。
檢查很慢,因此如果你不需要你可以用--skip-safemalloc選項(xiàng)來避免。
--transaction_isolation=level
設(shè)置默認(rèn)事務(wù)隔離級別,可以READ-UNCOMMITTED、READ-COMMITTEE、REPEATABLE-READ或SERIALIZABLE。
默認(rèn)為REPEATABLE-READ。
--tmpdir=path, -t path
創(chuàng)建臨時(shí)文件的目錄路徑。
--temp_pool
該選項(xiàng)使服務(wù)器創(chuàng)建的大多數(shù)臨時(shí)文件使用一系列文件名,而不是每個(gè)新文件使用唯一的文件名。
--bdb_cache_size
為BDB表緩存索引和行分配的緩沖區(qū)的大小。如果你不使用BDB表,你應(yīng)用--skip-bdb啟動(dòng)mysqld以便不浪費(fèi)該緩存。
--bdb_home
BDB表基準(zhǔn)目錄。應(yīng)與datadir變量的值相同。
--bdb_log_buffer_size
為BDB表緩存索引和行分配的緩沖區(qū)的大小。
-- bdb_logdir
BDB存儲引擎寫它日志文件的目錄。
--bdb_max_lock
在BDB表下可以激活的最大鎖數(shù)(默認(rèn)為10,000)。
-- binlog_cache_size
在事務(wù)過程中容納二進(jìn)制日志SQL語句的緩存大小。
二進(jìn)制日志緩存是服務(wù)器支持事務(wù)存儲引擎并且服務(wù)器啟用了二進(jìn)制日志(--log-bin選項(xiàng))的前提下為每個(gè)客戶端分配的內(nèi)存。
--bulk_insert_buffer_size
MyISAM 使用專用樹狀緩存來使INSERT ... SELECT、INSERT ... VALUES (...)、(...)、 ...和LOAD DATA INFILE的大塊插
入更快。注釋:只有向非空表添加數(shù)據(jù)時(shí)才使用該緩存。 默認(rèn)值是8MB。
--character_set_client
來自客戶端的語句的字符集。
--character_set_database
默認(rèn)數(shù)據(jù)庫使用的字符集。當(dāng)默認(rèn)數(shù)據(jù)庫更改時(shí),服務(wù)器則設(shè)置該變量。
如果沒有默認(rèn)數(shù)據(jù)庫,變量的同character_set_server。
--character_set_results
用于向客戶端返回查詢結(jié)果的字符集。
--character_sets_dir
字符集安裝目錄。
--completion_type
事務(wù)結(jié)束類型:
如果該值為0(默認(rèn)),COMMIT和ROLLBACK不受影響。
如果該值為1,COMMIT和ROLLBACK分別等同于COMMIT AND CHAIN和ROLLBACK AND CHAIN。
(新事務(wù)用剛剛結(jié)束的事務(wù)相同的間隔等級立即啟動(dòng))。
如果該值為2,COMMIT和ROLLBACK分別等同于COMMIT RELEASE和ROLLBACK RELEASE。(事務(wù)終止后,服務(wù)器斷開)。
--concurrent_insert
如果為ON(默認(rèn)值),MySQL允許INSERT和SELECT語句在中間沒有空數(shù)據(jù)塊的MyISAM表中并行運(yùn)行。
0 關(guān)
1 (默認(rèn))在沒有空數(shù)據(jù)塊的MyISAM表中啟用并行插入
2 為所有MyISAM表啟用并行插入。如果表有空記錄或正被另一線程使用,新行將插入到表的最后。
如果表未使用,MySQL將進(jìn)行普通讀鎖定并將新行插入空記錄。
-- delayed_insert_limit
插入delayed_insert_limit 延遲行后,INSERT DELAYED 處理器線程檢查是否有掛起的SELECT語句。如果有,在繼續(xù)插入延遲的行之前,允許它們先執(zhí)行。
-- delayed_insert_timeout
INSERT DELAYED處理器線程終止前應(yīng)等待INSERT語句的時(shí)間。
--delayed_queue_size
這是各個(gè)表中處理INSERT DELAYED語句時(shí)隊(duì)列中行的數(shù)量限制。如果隊(duì)列滿了,執(zhí)行INSERT DELAYED語句的客戶端應(yīng)等待直到隊(duì)列內(nèi)再有空間。
--div_precision_increment
該變量說明用/操作符執(zhí)行除操作的結(jié)果可增加的精確度的位數(shù)。 默認(rèn)值是4。最小和最大值分別為0和30。
-- expire_logs_days
二進(jìn)制日志自動(dòng)刪除的天數(shù)。默認(rèn)值為0,表示“沒有自動(dòng)刪除”。啟動(dòng)時(shí)和二進(jìn)制日志循環(huán)時(shí)可能刪除。
--flush_time
如果設(shè)為非零值,每隔flush_time秒則關(guān)閉所有表以釋放硬盤資源并同步未清空的數(shù)據(jù)。
我們建議只在Windows 9x或Me,或有最小資源的系統(tǒng)中使用該選項(xiàng)。
--init_connect
服務(wù)器為每個(gè)連接的客戶端執(zhí)行的字符串。字符串由一個(gè)或多個(gè)SQL語句組成。要想指定多個(gè)語句,用分號間隔開。
例如:[mysqld]
init_connect='SET AUTOCOMMIT=0'
-- join_buffer_size
用于完全聯(lián)接的緩沖區(qū)的大小(當(dāng)不使用索引的時(shí)候使用聯(lián)接操作)。
--key_buffer_size
MyISAM表的索引塊分配了緩沖區(qū),由所有線程共享。key_buffer_size是索引塊緩沖區(qū)的大小。鍵值緩沖區(qū)即為鍵值緩存。
key_buffer_size的最大允許設(shè)定值為4GB。通常為主要運(yùn)行MySQL的機(jī)器內(nèi)存的25%。
以通過執(zhí)行SHOW STATUS語句并檢查Key_read_requests、Key_reads、Key_write_requests和Key_writes狀態(tài)變量來檢查鍵值緩沖區(qū)的性能。
Key_reads/Key_read_requests比例一般應(yīng)小于0.01。如果你使用更新和刪除,Key_writes/Key_write_requests比例通常接近1,但如果你更新時(shí)會同時(shí)影響到多行或如果你正使用DELAY_KEY_WRITE表選項(xiàng),可能小得多。
1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
該值為約數(shù),因?yàn)殒I值緩沖區(qū)的部分空間被分配用作內(nèi)部管理結(jié)構(gòu)。
-- key_cache_block_size
鍵值緩存內(nèi)塊的字節(jié)大小。默認(rèn)值是1024。
-- locked_in_memory
是否用-memlock將mysqld鎖在內(nèi)存中。
-- lower_case_file_system
該變量說明是否數(shù)據(jù)目錄所在的文件系統(tǒng)對文件名的大小寫敏感。ON說明對文件名的大小寫不敏感,OFF表示敏感。
-- lower_case_table_names
如果設(shè)置為1,表名用小寫保存到硬盤上,并且表名比較時(shí)不對大小寫敏感。
如果設(shè)置為2,按照指定的保存表名,但按照小寫來比較。
數(shù)據(jù)庫中的每個(gè)表至少對應(yīng)數(shù)據(jù)庫目錄中的一個(gè)文件(也可能是多個(gè),取決于存儲引擎)。
因此,所使用操作系統(tǒng)的大小寫敏感性決定了數(shù)據(jù)庫名和表名的大小寫敏感性。
這說明在大多數(shù)Unix中數(shù)據(jù)庫名和表名對大小寫敏感,而在Windows中對大小寫不敏感。
-- max_binlog_cache_size
如果多語句事務(wù)需要更大的內(nèi)存,你會得到錯(cuò)誤Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage。
-- max_binlog_size
如果二進(jìn)制日志寫入的內(nèi)容超出給定值,日志就會發(fā)生滾動(dòng)。你不能將該變量設(shè)置為大于1GB或小于4096字節(jié)。 默認(rèn)值是1GB。
如果你正使用事務(wù):事務(wù)以一個(gè)塊寫入二進(jìn)制日志,因此不不能被幾個(gè)二進(jìn)制日志拆分。
因此,如果你有大的事務(wù),二進(jìn)制日志可能會大于max_binlog_size。
-- max_connect_errors
如果中斷的與主機(jī)的連接超過該數(shù)目,該主機(jī)則阻塞后面的連接。你可以用 FLUSH HOSTS語句解鎖鎖定的主機(jī)。
-- max_connections
允許的并行客戶端連接數(shù)目。
-- max_delayed_threads
不要啟動(dòng)大于該數(shù)目的線程來處理INSERT DELAYED語句。如果所有INSERT DELAYED線程已經(jīng)在使用,
你想在新表中插入數(shù)據(jù),行 插入時(shí)好像未指定DELAYED屬性。如果你將該值設(shè)置為0,MySQL不會創(chuàng)建線程來處理DELAYED行;
其結(jié)果是完全禁用了DELAYED。
-- max_error_count
保存由SHOW ERRORS或SHOW WARNINGS顯示的錯(cuò)誤、警告和注解的最大數(shù)目。
--max_heap_table_size
該變量設(shè)置MEMORY (HEAP)表可以增長到的最大空間大小。該變量用來計(jì)算MEMORY表的MAX_ROWS值。
在已有的MEMORY表上設(shè)置該變量沒有效果,除非用CREATE TABLE或TRUNCATE TABLE等語句重新創(chuàng)建表。
-- max_join_size
不允許可能需要檢查多于max_join_size行(為單個(gè)表語句)或行組合(為多個(gè)表語句)或可能執(zhí)行大于max_join_size次硬盤查詢的SELECT語句。通過設(shè)置該值,你可以捕獲鍵使用不正確并可能花很長時(shí)間的SELECT語句。
將該變量設(shè)置為DEFAULT之外的值,將SQL_BIG_SELECTS的值重設(shè)為0。
-- max_length_for_sort_data
確定使用的filesort算法的索引值大小的限值。
-- max_relay_log_size
如果復(fù)制從服務(wù)器寫入中繼日志時(shí)超出給定值,則滾動(dòng)中繼日志。通過該變量你可以對中繼日志和二進(jìn)制日志設(shè)置不同的限制。但是,將該變量設(shè)置為0,MySQL可以對二進(jìn)制日志和中繼日志使用max_binlog_size。max_relay_log_size必須設(shè)置在4096字節(jié)和1GB(包括)之間,或?yàn)?。 默認(rèn)值是0。
--- max_seeks_for_key
限制根據(jù)鍵值尋找行時(shí)的最大搜索數(shù)。MySQL優(yōu)化器假定當(dāng)用掃描鍵在表內(nèi)搜索匹配的行時(shí),不需要超過該數(shù)量的鍵值搜索,而不管鍵的實(shí)際基數(shù)是什么。將該值設(shè)置為較低的值(100?),你可以強(qiáng)制MySQL選擇鍵值而不選擇表掃描。
---Max_sort_length
當(dāng)排序BLOB或TEXT值時(shí)使用的字節(jié)數(shù)。只使用每個(gè)值的前max_sort_length字節(jié);其它的被忽略。
--max_tmp_tables
客戶端可以同時(shí)打開的臨時(shí)表的最大數(shù)。
--- max_user_connections
任何給定的MySQL賬戶允許的最大同時(shí)連接數(shù)。0值表示“沒有限制”。
--- max_write_lock_count
超過寫鎖定限制后,允許部分讀鎖定。
-- max_allowed_packet
包或任何生成的/中間字符串的最大大小。
包消息緩沖區(qū)初始化為net_buffer_length字節(jié),但需要時(shí)可以增長到max_allowed_packet字節(jié)。
該值默認(rèn)很小,以捕獲大的(可能是錯(cuò)誤的)數(shù)據(jù)包。
如果你使用大的BLOB 列或長字符串,你必須增加該值。應(yīng)同你想要使用的最大的BLOB一樣大。
max_allowed_packet的協(xié)議限制為1GB。
---myisam_data_pointer_size
默認(rèn)指針大小,單位是字節(jié),當(dāng)未指定MAX_ROWS選項(xiàng)時(shí),CREATE TABLE使用該變量創(chuàng)建MyISAM表。
該變量不能小于2或大于7。 默認(rèn)值是6。
--- myisam_sort_buffer_size
當(dāng)在REPAIR TABLE或用CREATE INDEX創(chuàng)建索引或ALTER TABLE過程中排序 MyISAM索引分配的緩沖區(qū)。
--- myisam_max_sort_file_size
重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE過程中)時(shí),允許MySQL使用的臨時(shí)文件的最大空間大小。
如果文件的大小超過該值,則使用鍵值緩存創(chuàng)建索引,要慢得多。該值的單位為字節(jié)。
---myisam_stats_method
當(dāng)為MyISAM表搜集關(guān)于索引值分發(fā)的統(tǒng)計(jì)信息時(shí)服務(wù)器如何處理NULL值。
該變量有兩個(gè)可能的值,nulls_equal和nulls_unequal。
nulls_equal表示所有的null值是相同的,nulls_unequal表示把每個(gè)null值都當(dāng)成一個(gè)不同的值。
-- net_buffer_length
在查詢之間將通信緩沖區(qū)重設(shè)為該值。一般情況不應(yīng)改變,但如果內(nèi)存很小,
可以將它設(shè)置為期望的客戶端發(fā)送的SQL語句的長度。如果語句超出該長度,緩沖區(qū)自動(dòng)擴(kuò)大,直到max_allowed_packet字節(jié)。
--- query_cache_limit
不要緩存大于該值的結(jié)果。默認(rèn)值是1048576(1MB)。
---query_cache_min_res_unit
查詢緩存分配的最小塊的大小(字節(jié))。 默認(rèn)值是4096(4KB)。
--- query_cache_size
為緩存查詢結(jié)果分配的內(nèi)存的數(shù)量。默認(rèn)值是0,即禁用查詢緩存。
--- query_cache_type
設(shè)置查詢緩存類型。該變量默認(rèn)設(shè)為ON。
0或OFF 不要緩存或查詢結(jié)果。請注意這樣不會取消分配的查詢緩存區(qū)。要想取消,你應(yīng)將query_cache_size設(shè)置為0。
1或ON 緩存除了以SELECT SQL_NO_CACHE開頭的所有查詢結(jié)果。
2或DEMAND 只緩存以SELECT SQL_NO_CACHE開頭的查詢結(jié)果。
--- query_cache_wlock_invalidate
一般情況,當(dāng)客戶端對MyISAM表進(jìn)行WRITE鎖定時(shí),如果查詢結(jié)果位于查詢緩存中,則其它客戶端未被鎖定,
可以對該表進(jìn)行查詢。將該變量設(shè)置為1,則可以對表進(jìn)行WRITE鎖定,使查詢緩存內(nèi)所有對該表進(jìn)行的查詢變得非法。
這樣當(dāng)鎖定生效時(shí),可以強(qiáng)制其它試圖訪問表的客戶端來等待。
--- query_prealloc_size
用于查詢分析和執(zhí)行的固定緩沖區(qū)的大小。在查詢之間該緩沖區(qū)不釋放。如果你執(zhí)行復(fù)雜查詢,
分配更大的query_prealloc_size值可以幫助提高性能,因?yàn)樗梢越档筒樵冞^程中服務(wù)器分配內(nèi)存的需求。
--- read_buffer_size
每個(gè)線程連續(xù)掃描時(shí)為掃描的每個(gè)表分配的緩沖區(qū)的大小(字節(jié))。如果進(jìn)行多次連續(xù)掃描,可能需要增加該值,
默認(rèn)值為131072。
--- read_only
當(dāng)變量對復(fù)制從服務(wù)器設(shè)置為ON時(shí),從服務(wù)器不允許更新,除非通過從服務(wù)器的線程或用戶擁有SUPER權(quán)限。
--- relay_log_purge
當(dāng)不再需要中繼日志時(shí)禁用或啟用自動(dòng)清空中繼日志。默認(rèn)值是1(啟用)。
--read_rnd_buffer_size
當(dāng)排序后按排序后的順序讀取行時(shí),則通過該緩沖區(qū)讀取行,避免搜索硬盤。將該變量設(shè)置為較大的值可以大大改進(jìn)ORDER BY的性能。但是,這是為每個(gè)客戶端分配的緩沖區(qū),因此你不應(yīng)將全局變量設(shè)置為較大的值。相反,只為需要運(yùn)行大查詢的客戶端更改會話變量。
--- skip_networking
如果服務(wù)器只允許本地(非TCP/IP)連接,該值為ON。在Unix中,本地連接使用Unix套接字文件。
在Windows中,本地連接使用命名管道或共享內(nèi)存
---sort_buffer_size
每個(gè)排序線程分配的緩沖區(qū)的大小。增加該值可以加快ORDER BY或GROUP BY操作。
---sync_binlog
如果為正,當(dāng)每個(gè)sync_binlog'th寫入該二進(jìn)制日志后,MySQL服務(wù)器將它的二進(jìn)制日志同步到硬盤上(fdatasync())。
請注意如果在autocommit模式,每執(zhí)行一個(gè)語句向二進(jìn)制日志寫入一次,否則每個(gè)事務(wù)寫入一次。
---sync_frm
如果該變量設(shè)為1,當(dāng)創(chuàng)建非臨時(shí)表時(shí)它的.frm文件被同步到硬盤上(fdatasync());這樣較慢但出現(xiàn)崩潰時(shí)較安全。
默認(rèn)值為1。
--- table_cache
所有線程打開的表的數(shù)目。增大該值可以增加mysqld需要的文件描述符的數(shù)量。
你可以檢查Opened_tables狀態(tài)變量來檢查你是否需要增加表緩存。
---thread_cache_size
服務(wù)器應(yīng)緩存多少線程以便重新使用。當(dāng)客戶端斷開連接時(shí),如果線程少于thread_cache_size,則客戶端的線程被放入緩存。當(dāng)請求線程時(shí)如果允許可以從緩存中重新利用線程,并且只有當(dāng)緩存空了時(shí)才會創(chuàng)建新線程。如果新連接很多,可以增加該變量以提高性能。(一般情況,如果線程執(zhí)行得很好,性能提高不明顯)。檢查Connections和Threads_created狀態(tài)變量的差,可以看見線程緩存的效率。
“MySQL中my.cnf文件的選項(xiàng)設(shè)置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。