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優化