MySQL 數(shù)據(jù)庫(kù)的使用是非常的廣泛,穩(wěn)定性和安全性也非常好,經(jīng)歷了無(wú)數(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è)方面來(lái)做:
一、架構(gòu)層面
1、做主從復(fù)制。
2、實(shí)現(xiàn)讀寫(xiě)分離。
二、系統(tǒng)層面
1、增加內(nèi)存。
2、硬盤(pán)使用固態(tài)硬盤(pán) SSD。
3、給磁盤(pán)做 raid0 或者 raid5 以增加磁盤(pán)的讀寫(xiě)速度。
4、可以重新掛載磁盤(pán),并加上 noatime 參數(shù),這樣可以減少磁盤(pán)的 I/O。
三、MySQL本身的優(yōu)化
1、如果未配置主從同步,可以把 bin-log 功能關(guān)閉,減少磁盤(pá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ù)庫(kù)的狀態(tài)來(lái)調(diào)試。如何調(diào)優(yōu)可以參考五。
4、根據(jù)具體的使用場(chǎng)景,選擇合適的存儲(chǔ)引擎。
四、應(yīng)用層次
查看慢查詢?nèi)罩?,根?jù)慢查詢?nèi)罩緝?yōu)化程序中的 SQL 語(yǔ)句,比如增加索引