国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL 5.5.x my.cnf參數配置優化詳解

2020-01-18 22:48:19
字體:
來源:轉載
供稿:網友

一直有耳聞MySQL5.5的性能非常NB,所以近期打算測試一下,方便的時候就把bbs.kaoyan.com升級到這個版本的數據庫。今天正好看到一篇有關my.cnf優化的總結,雖然還沒經過我自己的實踐檢驗,但從文章內容來說已經寫的很詳細了(當然,事實上下面這篇文章很多地方只是翻譯了my.cnf原始配置文件的說明,呵呵),所以特地轉載收藏一下,大家在對mysql服務器進行優化的時候可以作為參考,并根據實際情況對其中的一些參數進行調整。(特別備注:以下原文中有些參數事實上不適用于mysql5.5,不知道原作者是否有經過實際測試,比如log-slow-queries應該寫成slow-query-log,而log_long_format這個干脆就直接不支持了,回頭我再重新整理一份靠譜點的參數說明吧)

以下是原文作者對my.cnf的詳細解讀:

PS:本配置文件針對Dell R710,雙至強E5620、16G內存的硬件配置。CentOS 5.6 64位系統,MySQL 5.5.x 穩定版。適用于日IP 50-100w,PV 100-300w的站點,主要使用InnoDB存儲引擎。其他應用環境請根據實際情況來設置優化。

# 以下選項會被MySQL客戶端應用讀取。# 注意只有MySQL附帶的客戶端應用程序保證可以讀取這段內容。# 如果你想你自己的MySQL應用程序獲取這些值。# 需要在MySQL客戶端庫初始化的時候指定這些選項。# [client] #password = [your_password] port = @MYSQL_TCP_PORT@ socket = @MYSQL_UNIX_ADDR@# *** 應用定制選項 ***# # MySQL 服務端# [mysqld]# 一般配置選項port = @MYSQL_TCP_PORT@ socket = @MYSQL_UNIX_ADDR@# back_log 是操作系統在監聽隊列中所能保持的連接數, # 隊列保存了在MySQL連接管理器線程處理之前的連接. # 如果你有非常高的連接率并且出現”connection refused” 報錯, # 你就應該增加此處的值. # 檢查你的操作系統文檔來獲取這個變量的最大值. # 如果將back_log設定到比你操作系統限制更高的值,將會沒有效果 back_log = 300# 不在TCP/IP端口上進行監聽. # 如果所有的進程都是在同一臺服務器連接到本地的mysqld, # 這樣設置將是增強安全的方法# 所有mysqld的連接都是通過Unix sockets 或者命名管道進行的. # 注意在windows下如果沒有打開命名管道選項而只是用此項# (通過 “enable-named-pipe” 選項) 將會導致mysql服務沒有任何作用! #skip-networking# MySQL 服務所允許的同時會話數的上限# 其中一個連接將被SUPER權限保留作為管理員登錄. # 即便已經達到了連接數的上限.max_connections = 3000 # 每個客戶端連接最大的錯誤允許數量,如果達到了此限制. # 這個客戶端將會被MySQL服務阻止直到執行了”FLUSH HOSTS” 或者服務重啟# 非法的密碼以及其他在鏈接時的錯誤會增加此值. # 查看 “Aborted_connects” 狀態來獲取全局計數器.max_connect_errors = 30 # 所有線程所打開表的數量. # 增加此值就增加了mysqld所需要的文件描述符的數量# 這樣你需要確認在[mysqld_safe]中 “open-files-limit” 變量設置打開文件數量允許至少4096 table_cache = 4096# 允許外部文件級別的鎖. 打開文件鎖會對性能造成負面影響# 所以只有在你在同樣的文件上運行多個數據庫實例時才使用此選項(注意仍會有其他約束!) # 或者你在文件層面上使用了其他一些軟件依賴來鎖定MyISAM表#external-locking# 服務所能處理的請求包的最大大小以及服務所能處理的最大的請求大小(當與大的BLOB字段一起工作時相當必要) # 每個連接獨立的大小.大小動態增加max_allowed_packet = 32M# 在一個事務中binlog為了記錄SQL狀態所持有的cache大小# 如果你經常使用大的,多聲明的事務,你可以增加此值來獲取更大的性能. # 所有從事務來的狀態都將被緩沖在binlog緩沖中然后在提交后一次性寫入到binlog中# 如果事務比此值大, 會使用磁盤上的臨時文件來替代. # 此緩沖在每個連接的事務第一次更新狀態時被創建binlog_cache_size = 4M# 獨立的內存表所允許的最大容量. # 此選項為了防止意外創建一個超大的內存表導致永盡所有的內存資源. max_heap_table_size = 128M# 排序緩沖被用來處理類似ORDER BY以及GROUP BY隊列所引起的排序# 如果排序后的數據無法放入排序緩沖, # 一個用來替代的基于磁盤的合并分類會被使用# 查看 “Sort_merge_passes” 狀態變量. # 在排序發生時由每個線程分配 sort_buffer_size = 16M# 此緩沖被使用來優化全聯合(full JOINs 不帶索引的聯合). # 類似的聯合在極大多數情況下有非常糟糕的性能表現, # 但是將此值設大能夠減輕性能影響. # 通過 “Select_full_join” 狀態變量查看全聯合的數量# 當全聯合發生時,在每個線程中分配join_buffer_size = 16M# 我們在cache中保留多少線程用于重用# 當一個客戶端斷開連接后,如果cache中的線程還少于thread_cache_size, # 則客戶端線程被放入cache中. # 這可以在你需要大量新連接的時候極大的減少線程創建的開銷# (一般來說如果你有好的線程模型的話,這不會有明顯的性能提升.)thread_cache_size = 16# 此允許應用程序給予線程系統一個提示在同一時間給予渴望被運行的線程的數量. # 此值只對于支持 thread_concurrency() 函數的系統有意義( 例如Sun Solaris). # 你可可以嘗試使用 [CPU數量]*(2..4) 來作為thread_concurrency的值thread_concurrency = 8# 查詢緩沖常被用來緩沖 SELECT 的結果并且在下一次同樣查詢的時候不再執行直接返回結果. # 打開查詢緩沖可以極大的提高服務器速度, 如果你有大量的相同的查詢并且很少修改表. # 查看 “Qcache_lowmem_prunes” 狀態變量來檢查是否當前值對于你的負載來說是否足夠高. # 注意: 在你表經常變化的情況下或者如果你的查詢原文每次都不同, # 查詢緩沖也許引起性能下降而不是性能提升.query_cache_size = 128M# 只有小于此設定值的結果才會被緩沖# 此設置用來保護查詢緩沖,防止一個極大的結果集將其他所有的查詢結果都覆蓋.query_cache_limit = 4M# 被全文檢索索引的最小的字長. # 你也許希望減少它,如果你需要搜索更短字的時候. # 注意在你修改此值之后, # 你需要重建你的 FULLTEXT 索引ft_min_word_len = 8# 如果你的系統支持 memlock() 函數,你也許希望打開此選項用以讓運行中的mysql在在內存高度緊張的時候,數據在內存中保持鎖定并且防止可能被swapping out # 此選項對于性能有益#memlock# 當創建新表時作為默認使用的表類型, # 如果在創建表示沒有特別執行表類型,將會使用此值default_table_type = MYISAM# 線程使用的堆大小. 此容量的內存在每次連接時被預留. # MySQL 本身常不會需要超過64K的內存# 如果你使用你自己的需要大量堆的UDF函數# 或者你的操作系統對于某些操作需要更多的堆, # 你也許需要將其設置的更高一點.thread_stack = 512K# 設定默認的事務隔離級別.可用的級別如下: # READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE transaction_isolation = REPEATABLE-READ# 內部(內存中)臨時表的最大大小# 如果一個表增長到比此值更大,將會自動轉換為基于磁盤的表. # 此限制是針對單個表的,而不是總和.tmp_table_size = 128M# 打開二進制日志功能. # 在復制(replication)配置中,作為MASTER主服務器必須打開此項# 如果你需要從你最后的備份中做基于時間點的恢復,你也同樣需要二進制日志.log-bin=mysql-bin# 如果你在使用鏈式從服務器結構的復制模式 (A->B->C), # 你需要在服務器B上打開此項. # 此選項打開在從線程上重做過的更新的日志, # 并將其寫入從服務器的二進制日志. #log_slave_updates# 打開全查詢日志. 所有的由服務器接收到的查詢 (甚至對于一個錯誤語法的查詢) # 都會被記錄下來. 這對于調試非常有用, 在生產環境中常常關閉此項. #log# 將警告打印輸出到錯誤log文件. 如果你對于MySQL有任何問題# 你應該打開警告log并且仔細審查錯誤日志,查出可能的原因. #log_warnings# 記錄慢速查詢. 慢速查詢是指消耗了比 “long_query_time” 定義的更多時間的查詢. # 如果 log_long_format 被打開,那些沒有使用索引的查詢也會被記錄. # 如果你經常增加新查詢到已有的系統內的話. 一般來說這是一個好主意。log_slow_queries# 所有的使用了比這個時間(以秒為單位)更多的查詢會被認為是慢速查詢. # 不要在這里使用”1″, 否則會導致所有的查詢,甚至非常快的查詢頁被記錄下來(由于MySQL 目前時間的精確度只能達到秒的級別).long_query_time = 6# 在慢速日志中記錄更多的信息. # 一般此項最好打開. # 打開此項會記錄使得那些沒有使用索引的查詢也被作為到慢速查詢附加到慢速日志里log_long_format# 此目錄被MySQL用來保存臨時文件.例如, # 它被用來處理基于磁盤的大型排序,和內部排序一樣. # 以及簡單的臨時表. # 如果你不創建非常大的臨時文件,將其放置到 swapfs/tmpfs 文件系統上也許比較好# 另一種選擇是你也可以將其放置在獨立的磁盤上. # 你可以使用”;”來放置多個路徑# 他們會按照roud-robin方法被輪詢使用. #tmpdir = /tmp# *** 主從復制相關的設置# 唯一的服務辨識號,數值位于 1 到 2^32-1之間. # 此值在master和slave上都需要設置. # 如果 “master-host” 沒有被設置,則默認為1, 但是如果忽略此選項,MySQL不會作為master生效.server-id = 1# 復制的Slave (去掉master段的注釋來使其生效) # # 為了配置此主機作為復制的slave服務器,你可以選擇兩種方法: # # 1) 使用 CHANGE MASTER TO 命令 (在我們的手冊中有完整描述) 

主站蜘蛛池模板:
专栏|
新余市|
神木县|
封开县|
虞城县|
寻乌县|
宜州市|
定西市|
阳泉市|
厦门市|
敦煌市|
揭西县|
乐陵市|
德惠市|
澳门|
佛山市|
宿州市|
富川|
普宁市|
诸暨市|
社会|
屏南县|
息烽县|
威远县|
睢宁县|
宁夏|
太和县|
安义县|
修水县|
乡宁县|
辽宁省|
石楼县|
渝北区|
义马市|
太仆寺旗|
无锡市|
牡丹江市|
锡林浩特市|
广元市|
常熟市|
岢岚县|