MySQL 引數配置

2021-09-02 10:24:41 字數 1858 閱讀 8679

基本配置

你需要經常察看以下3個配置項。不然,可能很快就會出問題。

innodb_buffer_pool_size:這是你安裝完innodb後第乙個應該設定的選項。緩衝池是資料和索引快取的地方:這個值越大越好,這能保證你在大多數的讀取操作時使用的是記憶體而不是硬碟。典型的值是5-6gb(8gb記憶體),20-25gb(32gb記憶體),100-120gb(128gb記憶體)。

innodb_log_file_size:這是redo日誌的大小。redo日誌被用於確保寫操作快速而可靠並且在崩潰時恢復。一直到mysql 5.1,它都難於調整,因為一方面你想讓它更大來提高效能,另一方面你想讓它更小來使得崩潰後更快恢復。幸運的是從mysql 5.5之後,崩潰恢復的效能的到了很大提公升,這樣你就可以同時擁有較高的寫入效能和崩潰恢復效能了。一直到mysql 5.5,redo日誌的總尺寸被限定在4gb(預設可以有2個log檔案)。這在mysql 5.6裡被提高。

一開始就把innodb_log_file_size設定成512m(這樣有1gb的redo日誌)會使你有充裕的寫操作空間。如果你知道你的應用程式需要頻繁的寫入資料並且你使用的時mysql 5.6,你可以一開始就把它這是成4g。

max_connections:如果你經常看到『too many connections』錯誤,是因為max_connections的值太低了。這非常常見因為應用程式沒有正確的關閉資料庫連線,你需要比預設的151連線數更大的值。max_connection值被設高了(例如1000或更高)之後乙個主要缺陷是當伺服器執行1000個或更高的活動事務時會變的沒有響應。在應用程式裡使用連線池或者在mysql裡使用程序池有助於解決這一問題。

innodb配置

query_cache_size:query cache(查詢快取)是乙個眾所周知的瓶頸,甚至在併發並不多的時候也是如此。 最佳選項是將其從一開始就停用,設定query_cache_size = 0(現在mysql 5.6的預設值)並利用其他方法加速查詢:優化索引、增加拷貝分散負載或者啟用額外的快取(比如memcache或redis)。如果你已經為你的應用啟用了query cache並且還沒有發現任何問題,query cache可能對你有用。這是如果你想停用它,那就得小心了。

log_bin:如果你想讓資料庫伺服器充當主節點的備份節點,那麼開啟二進位制日誌是必須的。如果這麼做了之後,還別忘了設定server_id為乙個唯一的值。就算只有乙個伺服器,如果你想做基於時間點的資料恢復,這(開啟二進位制日誌)也是很有用的:從你最近的備份中恢復(全量備份),並應用二進位制日誌中的修改(增量備份)。二進位制日誌一旦建立就將永久儲存。所以如果你不想讓磁碟空間耗盡,你可以用 purge binary logs 來清除舊檔案,或者設定expire_logs_days 來指定過多少天日誌將被自動清除。

記錄二進位制日誌不是沒有開銷的,所以如果你在乙個非主節點的複製節點上不需要它的話,那麼建議關閉這個選項。

skip_name_resolve:當客戶端連線資料庫伺服器時,伺服器會進行主機名解析,並且當dns很慢時,建立連線也會很慢。因此建議在啟動伺服器時關閉skip_name_resolve選項而不進行dns查詢。唯一的侷限是之後grant語句中只能使用ip位址了,因此在新增這項設定到乙個已有系統中必須格外小心。

總結

當然還有其他的設定可以起作用,取決於你的負載或硬體:在慢記憶體和快磁碟、高併發和寫密集型負載情況下,你將需要特殊的調整。然而這裡的目標是使得你可以快速地獲得乙個穩健的mysql配置,而不用花費太多時間在調整一些無關緊要的mysql設定或讀文件找出哪些設定對你來說很重要上。

mysql配置引數優化 mysql配置引數優化

最大連線數 優化 max connections 1000 table open cache 256 query cache type 1 查詢快取大小 query cache size 1m tmp table size 32m 執行緒快取數 thread cache size 8 關閉dns做反...

mysql引數配置

在伺服器中每個連線所分配的記憶體主要由下面四個引數控制 1 sort buffer size連線進行排序時候分配該配置引數大小的記憶體進行排序操作,比如該大小設定為100m,如果有100個連線同時進行排序將分配10g的記憶體,很容易造成伺服器記憶體溢位 2 join buffer size定義mys...

mysql 檢視引數配置 Mysql 相關引數配置

一 慢查詢日誌配置 以下是開啟慢日誌的配置 單位為 s slow query log on slow query log file d mysql 8.0.21 winx64 slowlog slow.log long query time 0.001 log queries not using i...