常見的數據庫系統優化中的一些觀點: html
「系統性能出現問題進行優化,必定要深刻了解數據庫內部參數、等待事件、Latch、緩衝池、trace文件、查詢/優化引擎等底層細節。」 sql
這種觀點每每出自數據庫「高手」,這部分人以瞭解數據庫底層實現細節而感到很是驕傲。但是從優化角度講數據庫的等待事件、Latch等指標高等等都只是問題的表象,懂得底層細節和內幕當然是好。可是解決問題的關鍵每每是在應用層進行優化。數據庫
「只要系統參數調整了,性能就能提升。系統優化應該調整那些參數…」 架構
這種觀點每每出自於一些偏運維和應用層的DBA,迷戀參數配置來調優。運維
調整系統參數是很是重要的,但不必定能解決性能問題,不然就不會有去IOE了,問題可能性最大的仍是應用設計和開發問題。數據庫設計
同理,不少運維人員和系統架構師比較迷戀「Linux系統調優」。認爲的對「文件句柄數、CPU/內存/磁盤子系統…」各類參數作了優化,覺得這就能提高整個應用系統的性能。其實否則。有些場景下,針對業務特色和應用類型作操做系統調優是能取到立竿見影的效果,可是大多數時候每每提高並不明顯。因此最關鍵的仍是找出瓶頸所在,對症下藥。性能
「系統性能問題須要從架構上解決,與應用開發關係不大。」 大數據
系統性能與各個層面都有關,總體架構很重要,但應用開發也是很是重要的一環。優化
「大家必需要作讀寫分離,必需要弄分庫分表。」操作系統
這種一般是「吹水」的人常在外面忽悠的,這些技術手段都被說爛了。
反問一句,瞭解數據量嗎?知道實際壓力和瓶頸嗎?瞭解讀寫好比何嗎?怎麼拆?拆了以後怎麼玩?
上述那些觀點,都是比較片面的,仍是須要結合實際狀況辯證分析。
常見影響數據庫性能的因素:
一、業務需求和技術選型
二、應用系統的開發及架構
三、數據庫自身
3.一、表結構的設計
3.二、查詢語句
3.三、索引設計
3.四、Mysql服務(安裝、配置等)
3.五、操做系統調優
3.六、硬件升級(SSD、更強的CPU、更大的內存)
四、數據架構(讀寫分離、分庫分表等)
性能調優的基本方法論:
理想的數據庫優化順序:
在不少狀況下,數據庫可能是互聯網應用系統的最大瓶頸。可是單純從數據庫角度去作優化,可能未必能達到理想的效果。
擴展閱讀
做者:丁碼農
來源:https://www.cnblogs.com/dinglang/p/6113186.html