mysql調優的一些方面

2021-10-03 04:37:11 字數 2714 閱讀 7522

1.首先的一點就是可以做乙個mysql集群實現讀寫分離

2.查詢sql慢日誌,給一些表做索引

3.調整mysql引數:

設定合理的key_buffer_size,它是指索引緩衝區的大小,決定了索引的處理速度。大概的分配為1g設定128m,2g為256m,依此類推。

#檢視key_buffer_size的值

show variables like "key_buffer%"

;#修改,單位為bit

set global key_buffer_size=256000000;

#檢視該引數的合理性,需要看兩個值:key_reads、key_read_requests。一般來說key_reads / key_read_requests為1:100,或者1:1000

show status like "key_read%"

;

設定合理的table_open_cache,一般1024就可以了。該引數是指開啟乙個表的時候,會臨時把錶裡面的資料放到這部分記憶體裡面。該引數設定參考open_tables,open_tables應該比table_open_cache小。

#檢視table_open_cache

show variables like "table_open_cache"

;#檢視open_tables

show status like "open_ta%"

;

sort_buffer_size查詢排序時所能使用的緩衝區大小,該引數對應的分配記憶體是每連線獨佔!如果有100個連線,那麼實際分配的總共排序緩衝區大小為100 × 4 = 400mb。所以,對於內存在4gb左右的伺服器推薦設定為4-8m。

read_buffer_size讀查詢操作所能使用的緩衝區大小。和sort_buffer_size一樣,該引數對應的分配記憶體也是每連線獨享!

#檢視

show variables like "read_buffer_size%"

;#修改

set read_buffer_size=1024000;

myisam_sort_buffer_size 這個緩衝區主要用於修復表過程中排序索引使用的記憶體或者是建立索引時排序索引用到的記憶體大小,一般4g記憶體給64m即可

#檢視

show variables like "myisam_sort_buffer_size%"

;#修改

set myisam_sort_buffer_size=16000000;

設定合理的query_cache_size,該引數是查詢操作緩衝區的大小。該引數需要結合檢視引數qcache_lowmem_prunes。qcache_lowmem_prunes記錄了有多少查詢不足而移除查詢快取。一般來說4g記憶體64m足夠。

查詢

show variables like "query_cache%"

;#修改

show status like "qcache%"

;

thread_cache_size表示可以重新利用儲存在快取中線程的數,參考如下值:1g —> 8 2g —> 16 3g —> 32 >3g —> 64

#查詢

show variables like "thread_cache_size"

;

wait_timeout 表示空閒的連線超時時間,預設是28800s,這個引數是和interactive_timeout一起使用的,也就是說要想讓wait_timeout 生效,必須同時設定interactive_timeout,建議他們兩個都設定為10

show variables like "wait_timeout"

;show variables like "interactive_timeout"

;#修改

set wait_timeout=10;

show variables like "interactive_timeout"

;

max_connect_errors 是乙個mysql中與安全有關的計數器值,它負責阻止過多嘗試失敗的客戶端以防止暴力破解密碼的情況。與效能並無太大關係。為了避免一些錯誤我們一般都設定比較大,比如說10000 。

max_connections 最大的連線數,根據業務請求量適當調整,設定500足夠

#檢視

show variables like "max_connections "

;#修改

set global max_connections=500;

max_user_connections 是指同乙個賬號能夠同時連線到mysql服務的最大連線數。設定為0表示不限制。通常我們設定為100足夠

#檢視

show variables like "max_user_connections"

;#修改

set global max_user_connections=100;

mysql調優的一些方面

1.首先的一點就是可以做乙個mysql集群實現讀寫分離 2.查詢sql慢日誌,給一些表做索引 3.調整mysql引數 設定合理的key buffer size,它是指索引緩衝區的大小,決定了索引的處理速度。大概的分配為1g設定128m,2g為256m,依此類推。檢視key buffer size的值...

MySQL調優的一些簡單經驗

分情況解決 後記工作中使用mysql資料庫,在十萬級的資料量下發下有一些查詢統計的sql執行異常慢,達到7秒左右,本來以為是網路問題,後來在本地 上線後伺服器環境 資料庫在內網 下仍然很慢,所以排查了一下,很簡單的就解決了 使用的druid資料來源,自帶有sql監控功能還是比較好排查的 其他資料來源...

一些調優引數

select sum pins reloads sum pins lib cache from v librarycache 查詢sql 分析解析率,大於90 說明sql解析正常,無需更改,至於更改方法,研究中 select sum gets getmisses sum gets hit from ...