数据库性能优化的误区!
作者:丁碼農(nóng)
來源:www.cnblogs.com/dinglang
常見的數(shù)據(jù)庫系統(tǒng)優(yōu)化中的一些觀點:?
“系統(tǒng)性能出現(xiàn)問題進(jìn)行優(yōu)化,一定要深入了解數(shù)據(jù)庫內(nèi)部參數(shù)、等待事件、Latch、緩沖池、trace文件、查詢/優(yōu)化引擎等底層細(xì)節(jié)。”?
這種觀點往往出自數(shù)據(jù)庫“高手”,這部分人以了解數(shù)據(jù)庫底層實現(xiàn)細(xì)節(jié)而感到非常驕傲。但是從優(yōu)化角度講數(shù)據(jù)庫的等待事件、Latch等指標(biāo)高等等都只是問題的表象,懂得底層細(xì)節(jié)和內(nèi)幕固然是好。但是解決問題的關(guān)鍵往往是在應(yīng)用層進(jìn)行優(yōu)化。
“只要系統(tǒng)參數(shù)調(diào)整了,性能就能提高。系統(tǒng)優(yōu)化應(yīng)該調(diào)整那些參數(shù)…”?
這種觀點往往出自于一些偏運維和應(yīng)用層的DBA,迷戀參數(shù)配置來調(diào)優(yōu)。?
調(diào)整系統(tǒng)參數(shù)是非常重要的,但不一定能解決性能問題,否則就不會有去IOE了,問題可能性最大的還是應(yīng)用設(shè)計和開發(fā)問題。
同理,很多運維人員和系統(tǒng)架構(gòu)師比較迷戀“Linux系統(tǒng)調(diào)優(yōu)”。認(rèn)為的對“文件句柄數(shù)、CPU/內(nèi)存/磁盤子系統(tǒng)…”各種參數(shù)做了優(yōu)化,以為這就能提升整個應(yīng)用系統(tǒng)的性能。其實不然。有些場景下,針對業(yè)務(wù)特點和應(yīng)用類型做操作系統(tǒng)調(diào)優(yōu)是能取到立竿見影的效果,但是大多數(shù)時候往往提升并不明顯。所以最關(guān)鍵的還是找出瓶頸所在,對癥下藥。
“系統(tǒng)性能問題需要從架構(gòu)上解決,與應(yīng)用開發(fā)關(guān)系不大。”?
系統(tǒng)性能與各個層面都有關(guān),整體架構(gòu)很重要,但應(yīng)用開發(fā)也是非常重要的一環(huán)。
“你們必須要做讀寫分離,必須要弄分庫分表。”
這種通常是“吹水”的人常在外面忽悠的,這些技術(shù)手段都被說爛了。
反問一句,了解數(shù)據(jù)量嗎?知道實際壓力和瓶頸嗎?了解讀寫比如何嗎?怎么拆?拆了之后怎么玩??
上述那些觀點,都是比較片面的,還是需要結(jié)合實際情況辯證分析。?
常見影響數(shù)據(jù)庫性能的因素:
1、業(yè)務(wù)需求和技術(shù)選型?
2、應(yīng)用系統(tǒng)的開發(fā)及架構(gòu)?
3、數(shù)據(jù)庫自身?
????3.1、表結(jié)構(gòu)的設(shè)計?
????3.2、查詢語句?
????3.3、索引設(shè)計?
????3.4、Mysql服務(wù)(安裝、配置等)?
????3.5、操作系統(tǒng)調(diào)優(yōu)?
????3.6、硬件升級(SSD、更強(qiáng)的CPU、更大的內(nèi)存)?
4、數(shù)據(jù)架構(gòu)(讀寫分離、分庫分表等)
性能調(diào)優(yōu)的基本方法論:
理想的數(shù)據(jù)庫優(yōu)化順序:
在很多情況下,數(shù)據(jù)庫可能是互聯(lián)網(wǎng)應(yīng)用系統(tǒng)的最大瓶頸。但是單純從數(shù)據(jù)庫角度去做優(yōu)化,可能未必能達(dá)到理想的效果。
總結(jié)
以上是生活随笔為你收集整理的数据库性能优化的误区!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一次 Young GC 的优化实践
- 下一篇: 中国学霸本科生提出AI新算法:速度比肩A