優(yōu)化策略一:調(diào)整硬盤I/O
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括阿克蘇網(wǎng)站建設(shè)、阿克蘇網(wǎng)站制作、阿克蘇網(wǎng)頁(yè)制作以及阿克蘇網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,阿克蘇網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到阿克蘇省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!這一步是在信息系統(tǒng)開(kāi)發(fā)之前完成的。數(shù)據(jù)庫(kù)管理員可以將組成同一個(gè)表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O負(fù)載均衡。
優(yōu)化策略二:建立索引
減少數(shù)據(jù)訪問(wèn),創(chuàng)建并使用正確的索引。數(shù)據(jù)庫(kù)索引的原理非常簡(jiǎn)單,但在復(fù)雜的表中真正能正確使用索引的人很少,即使是專業(yè)的DBA也不一定能完全做到最優(yōu)。索引會(huì)大大增加表記錄的DML開(kāi)銷,正確的索引可以讓性能提升100,1000倍以上,不合理的索引也可能會(huì)讓性能下降100倍,因此在一個(gè)表中創(chuàng)建什么樣的索引需要平衡各種業(yè)務(wù)需求。數(shù)據(jù)庫(kù)優(yōu)化第一步就是建立合理的索引,這也是最初級(jí)的優(yōu)化,也是DBA常用的優(yōu)化方案
優(yōu)化策略三:調(diào)整數(shù)據(jù)庫(kù)SQL語(yǔ)句
應(yīng)用程序的執(zhí)行最終將歸結(jié)為數(shù)據(jù)庫(kù)中的SQL語(yǔ)句執(zhí)行,因此SQL語(yǔ)句的執(zhí)行效率最終決定了ORACLE數(shù)據(jù)庫(kù)的性能。ORACLE公司推薦使用ORACLE語(yǔ)句優(yōu)化器(Oracle Optimizer)和行鎖管理器(row-level manager)來(lái)調(diào)整優(yōu)化SQL語(yǔ)句。
優(yōu)化策略四:考慮應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)
這一部分也是在開(kāi)發(fā)信息系統(tǒng)之前完成,程序員在這一步需要考慮應(yīng)用程序使用什么樣的體系結(jié)構(gòu),是使用傳統(tǒng)的Client/Server兩層體系結(jié)構(gòu),還是使用Browser/Web/Database的三層體系結(jié)構(gòu)。不同的應(yīng)用程序體系結(jié)構(gòu)要求的數(shù)據(jù)庫(kù)資源是不同的。
優(yōu)化策略五:考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)
這一部分在開(kāi)發(fā)信息系統(tǒng)之前完成,程序員需要考慮是否使用ORACLE數(shù)據(jù)庫(kù)的分區(qū)功能,對(duì)于經(jīng)常訪問(wèn)的數(shù)據(jù)庫(kù)表是否需要建立索引等。
優(yōu)化策略六:做好服務(wù)器內(nèi)存分配
減少數(shù)據(jù)庫(kù)服務(wù)器CPU運(yùn)算,使用綁定變量,并且合理使用排序,減少比較操作,利用更多的資源。內(nèi)存分配是在信息系統(tǒng)運(yùn)行過(guò)程中優(yōu)化配置的,數(shù)據(jù)庫(kù)管理員可以根據(jù)數(shù)據(jù)庫(kù)運(yùn)行狀況調(diào)整數(shù)據(jù)庫(kù)系統(tǒng)全局區(qū)的數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)和共享池的大?。贿€可以調(diào)整程序全局區(qū)的大小。需要注意的是,SGA區(qū)不是越大越好,SGA區(qū)過(guò)大會(huì)占用操作系統(tǒng)使用的內(nèi)存而引起虛擬內(nèi)存的頁(yè)面交換,這樣反而會(huì)降低系統(tǒng)。
優(yōu)化策略七:調(diào)整操作系統(tǒng)參數(shù)
例如:運(yùn)行在UNIX操作系統(tǒng)上的ORACLE數(shù)據(jù)庫(kù),可以調(diào)整UNIX數(shù)據(jù)緩沖池的大小,每個(gè)進(jìn)程所能使用的內(nèi)存大小等參數(shù)。
優(yōu)化策略八:分庫(kù)
分庫(kù)是數(shù)據(jù)庫(kù)優(yōu)化的一種較高級(jí)手段,實(shí)際上是橫向分表的衍生;一般需要有中間件或者客戶端做一些工作實(shí)現(xiàn),這里給大家推薦兩個(gè)分庫(kù)的代碼:一個(gè)是mycat,基于阿里coba開(kāi)源的數(shù)據(jù)庫(kù)中間件,很容易實(shí)現(xiàn)分庫(kù)分表、主從切換功能。
優(yōu)化策略九:精簡(jiǎn)業(yè)務(wù)邏輯
要通過(guò)優(yōu)化業(yè)務(wù)邏輯來(lái)提高性能是比較困難的,這需要程序員對(duì)所訪問(wèn)的數(shù)據(jù)及業(yè)務(wù)流程非常清楚。實(shí)際的業(yè)務(wù)總是十分復(fù)雜的,所以一般只是高級(jí)程序員更容易做出優(yōu)化的邏輯,但是我們需要有這樣一種成本優(yōu)化的意識(shí)。
優(yōu)化策略十:分析查詢?nèi)罩竞吐樵內(nèi)罩?/p>
記錄所有查詢,這在用 ORM 系統(tǒng)或者生成查詢語(yǔ)句的系統(tǒng)很有用。
log=/var/log/mysql.log
注意不要在生產(chǎn)環(huán)境用,否則會(huì)占滿你的磁盤空間。
記錄執(zhí)行時(shí)間超過(guò) 1 秒的查詢:
long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log
以上就是數(shù)據(jù)庫(kù)性能優(yōu)化的策略分析,大家都學(xué)會(huì)了嗎?如果在實(shí)際工作中,想要優(yōu)化數(shù)據(jù)庫(kù),不妨把以上的做法實(shí)操一遍,相信對(duì)大家的工作會(huì)有很大的幫助。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。