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