影响性能的几个方面
究竟是什么對數(shù)據(jù)庫的性能造成了影響,數(shù)據(jù)庫性能的影響有幾個方面,第一個對數(shù)據(jù)庫性能又影響的,顯而易見的因素呢,數(shù)據(jù)庫服務(wù)器的硬件,當(dāng)我們個人計(jì)算機(jī)響應(yīng)足夠快時,我們總說CPU不夠快,或者磁盤IO太慢,因素引起的,同樣這些問題在服務(wù)器上也會存在
同樣這些問題在服務(wù)器上也會存在,所以這是人們最能找到的影響因素之一,第二個是服務(wù)器所使用的操作系統(tǒng),同樣咱們的個人電腦,我們發(fā)現(xiàn)我們的電腦在有的操作系統(tǒng)上,運(yùn)行比在其它系統(tǒng)上操作的更加順暢,而對于同樣的操作系統(tǒng),有的時候配置參數(shù)不同,運(yùn)行流暢度也不同,就拿我們比較熟悉的Windows XP來說,默認(rèn)的TCP參數(shù)只有10個,而當(dāng)我們把這個限制調(diào)大之后,就會發(fā)現(xiàn),大大加快我們下載的速度,同樣服務(wù)器系統(tǒng)也是有區(qū)別的,而對服務(wù)器系統(tǒng)的參數(shù)呢,也要比我們個人桌面系統(tǒng)的參數(shù)多得多,對這些參數(shù)的調(diào)整呢,會影響咱們服務(wù)器的整體性能,而第三個影響性能的因素呢,我們MYSQL服務(wù)器的存儲引擎,眾所周知,MYSQL的最大特點(diǎn),插件式的存儲引擎的設(shè)計(jì),我們可以根據(jù)我們業(yè)務(wù)的不同需求,自由的選擇我們需要的任何一種存儲引擎,而不同的存儲引擎呢,有不同的特點(diǎn),比如MySAM引擎它是不支持事務(wù)的,同時它使用的是表級鎖,而InnoDB是一種事務(wù)級的存儲引擎,同時完美支持行級鎖,以及事務(wù)的ACID特性,但是我們并不能因此說,InnoDB一定要比MyISAM要好,在有些場景下,發(fā)現(xiàn)使用MyISAM可能更加的合適,關(guān)于存儲引擎的選擇呢,還會有詳細(xì)的介紹
影響數(shù)據(jù)庫性能的第四個因素呢,就是數(shù)據(jù)庫服務(wù)器的參數(shù),MYSQL有上百項(xiàng)的配置參數(shù),不同的存儲引擎也有不同的配置參數(shù),而有些參數(shù)對性能的影響幾乎是微乎其微的,但是有的參數(shù)是有著決定性的影響,所以根據(jù)我們所選的存儲引擎,業(yè)務(wù)模式的不同,對不同的參數(shù)進(jìn)行優(yōu)化,也是我們作為DBA的一個關(guān)鍵技能,前面加起來對性能的影響,可能也沒有最后一個對數(shù)據(jù)庫性能的影響巨大
最后一個就是數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì)和SQL語句的執(zhí)行效率,對數(shù)據(jù)庫性能的影響,我們在進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的時候,今后我們要在SQL中執(zhí)行什么樣的SQL語句,來對我們所設(shè)計(jì)的表結(jié)構(gòu)進(jìn)行查詢和更新,只有這樣才能設(shè)計(jì)符合我們SQL查詢優(yōu)化邏輯的表結(jié)構(gòu),慢查詢可以說是大多數(shù)數(shù)據(jù)庫的罪魁禍?zhǔn)?而很多有效類型的SQL,就是由于我們很多數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)不合理而造成的,而對于這類SQL來說,也是最難優(yōu)化的,因?yàn)槲覀兊臉I(yè)務(wù)一旦上線,就很難對表結(jié)構(gòu)進(jìn)行更改了,所以呢我們數(shù)據(jù)庫性能優(yōu)化的重點(diǎn)呢,在于數(shù)據(jù)庫庫表結(jié)構(gòu)的設(shè)計(jì),SQL語句的編寫和優(yōu)化上,以上就是所有對數(shù)據(jù)庫性能影響的因素,我們應(yīng)該如何進(jìn)行優(yōu)化
?
總結(jié)
- 上一篇: 大事务带来的问题
- 下一篇: CPU资源和可用内存大小