1. 程式人生 > >MySQL階段七——MySQL優化

MySQL階段七——MySQL優化

mysql

mysql優化

-一、硬件優化(優化的主要點)

01.CPU----最好是64位的,例:8-16顆CPU

02.內存----例:96G-128G,3-4個實例

03.disk----數量越多越好,性能:ssd(適合高並發業務)>sas(普通上線業務)>sata(適合線下)

RAID----部署合適的RAID

04.網卡----多塊網卡bond,以及buffer,tcp優化

-二、軟件優化

01.操作系統----x86_64

02.軟件:mysql,編譯優化

-三、my.cnf裏面參數優化 (一般效果不是很明顯)

01.使用調優工具

-四、sql語句的優化

01.索引優化

a.抓取出慢查詢sql

b.可以使用慢查詢日誌分析工具

(對於查詢慢的select語句,可以使用explain查看查詢;一般在唯一值或者重復比較少的列上面簡歷索引,如果多條件查詢中的條件,全部都是唯一值少,重復較多,這時候可以采用聯合索引,對於多個列一起進行建立索引)

c.晚上零點分析慢查詢,發到核心開發,dba分析。

02.拆分大的復雜的sql語句

子查詢,jion查詢。

03.數據庫是存儲數據的地方不是計算數據的地方

04.對於LIKE "%XXXIII%"之類的前後都是%的查詢,sql索引不起作用(一般是一些搜索會出現這種問題)

解決:a.從業務上,可以實現用戶登錄後再查詢或者搜索,減少搜索次數

b.如果大量頻繁的搜索,一般是爬蟲在爬,這時就可以分析web日誌,將頻繁查詢的IP封掉

c.配置主從同步,程序實現讀寫分離

d.在數據庫前端加memcached緩存服務器

e.不用數據庫進行查詢,用搜索軟件

-五、架構上的優化

01.業務拆分,搜索功能,like "%XXX%",一般不用mysql數據庫

02.數據庫前端必須加cache,例如:memcached

03.業務拆分,某些業務應使用nosql持久化存儲

比如:粉絲關註、好友關系等

04.動態數據靜態化

05.數據庫集群與讀寫分離,一主多從

06.單表過多,進行拆庫拆表

-六、流程,制度,安全優化







本文出自 “秦斌的博客” 博客,謝絕轉載!

MySQL階段七——MySQL優化