天天看點

修改預設MySQL配置_mysql預設配置修改

查詢mysql資料庫連接配接最大響應數

show global status like 'Max_used_connections'

查詢mysql資料庫最大連接配接數

show variables like '%max_connections%';

對于mysql伺服器最大連接配接數值的設定範圍比較理想的是:伺服器響應的最大連接配接數值占伺服器上限連接配接數值的比例值在10%以上,如果在10%以下,說明mysql伺服器最大連接配接上限值設定過高。

查詢mysql 臨時表大小設定

show global variables like 'tmp_table_size';

#mysql連接配接逾時時間設定

show global variables like 'wait_timeout';

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

skip-name-resolve

它将禁止 MySql Server 對外部連接配接進行 DNS 解析,使用這一選項可以消除 MySql 進行 DNS 解析的時間。

但需要注意,如果開啟該選項,則所有遠端主機連接配接授權都要使用IP位址方式,否則MySQL将無法正常處理連接配接請求。

MYSQL設定使用cpu多核

innodb_thread_concurrency

innodb_read_io_threads

innodb_write_io_threads

來設定,innodb_thread_concurrency這個參數設定為0時,表示不限制線程數。innodb_read_io_threads innodb_write_io_threads這兩個參數預設值是4,如果CPU是2顆8核的,那麼可以設定為innodb_read_io_threads=8,innodb_write_io_threads=8,當然如果是讀比寫多的話。可以把讀的參數設定大點。

通過設定完成,可以發現還是不錯的。

可以通過

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

cat /proc/cpuinfo | grep "cpu cores" | uniq

檢視cpu的個數以及核數

如何設定呢?

假如CPU是2顆8核的,那麼可以設定:

innodb_read_io_threads = 8innodb_write_io_threads = 8

如果資料庫的讀操作比寫操作多,那麼可以設定:

innodb_read_io_threads = 10innodb_write_io_threads = 6

重點優化參數

thread_concurrency = 8

設定thread_concurrency的值的正确與否, 對mysql的性能影響很大, 在多個cpu(或多核)的情況下,錯誤設定了thread_concurrency的值, 會導緻mysql不能充分利用多cpu(或多核), 出現同一時刻隻能一個cpu(或核)在工作的情況。thread_concurrency應設為CPU核數的2倍. 比如有一個雙核的CPU, 那麼thread_concurrency的應該為4; 2個雙核的cpu, thread_concurrency的值應為8

thread_cache_size = 64

重新利用儲存在緩存中線程的數量,當斷開連接配接時如果緩存中還有空間,那麼用戶端的線程将被放到緩存中,如果線程重新被請求,那麼請求将從緩存中讀取,如果緩存中是空的或者是新的請求,那麼這個線程将被重新建立,如果有很多新的線程,增加這個值可以改善系統性能

根據實體記憶體設定規則如下:

1G ---> 8

2G ---> 16

3G ---> 32

>3G ---> 64

本文我的blog位址:https://www.mixthe.me/archives/241.html