MySQL 數(shù)據(jù)庫的使用是非常的廣泛,穩(wěn)定性和安全性也非常好,經(jīng)歷了無數(shù)大小公司的驗(yàn)證。僅能夠安裝使用是遠(yuǎn)遠(yuǎn)不夠的,MySQL 在使用中需要進(jìn)行不斷的調(diào)整參數(shù)或優(yōu)化設(shè)置,才能夠發(fā)揮 MySQL 的最大作用。下邊的內(nèi)容是我在工作中經(jīng)驗(yàn)的總結(jié),也作為自己的工作筆記,如果能夠幫助到有需要的同志就更好了。MySQL 的優(yōu)化可以從個(gè)方面來做:
一、架構(gòu)層面
1、做主從復(fù)制。
2、實(shí)現(xiàn)讀寫分離。
二、系統(tǒng)層面
1、增加內(nèi)存。
2、硬盤使用固態(tài)硬盤 SSD。
3、給磁盤做 raid0 或者 raid5 以增加磁盤的讀寫速度。
4、可以重新掛載磁盤,并加上 noatime 參數(shù),這樣可以減少磁盤的 I/O。
三、MySQL本身的優(yōu)化
1、如果未配置主從同步,可以把 bin-log 功能關(guān)閉,減少磁盤 I/O。
2、在 my.cnf 中加上 skip-name-resolve ,這樣可以避免由于解析主機(jī)名延遲造成 M有SQL 執(zhí)行慢。
3、調(diào)整幾個(gè)關(guān)鍵的 buffer 和 cache。調(diào)整的依據(jù),主要根據(jù)數(shù)據(jù)庫的狀態(tài)來調(diào)試。如何調(diào)優(yōu)可以參考五。
4、根據(jù)具體的使用場(chǎng)景,選擇合適的存儲(chǔ)引擎。
四、應(yīng)用層次
查看慢查詢?nèi)罩荆鶕?jù)慢查詢?nèi)罩緝?yōu)化程序中的 SQL 語句,比如增加索引