鄭州北大青鳥:MYSQL優(yōu)化之降低磁盤搜索頻率
今天我們鄭州計(jì)算機(jī)培訓(xùn)學(xué)校的老師給大家分享的是數(shù)據(jù)庫相關(guān)知識(shí):MYSQL優(yōu)化之降低磁盤搜索頻率。
眾所周知,目前,磁盤搜索是性能的很大瓶頸。這個(gè)問題在數(shù)據(jù)大量增長以至于無法使用有效的緩存時(shí)尤為明顯。或多或少隨即訪問大數(shù)據(jù)庫時(shí),就必然會(huì)有至少一次磁盤搜索來讀數(shù)據(jù),兩次磁盤搜索來寫數(shù)據(jù)。最小化這個(gè)問題的辦法就是降低磁盤搜索次數(shù)。
增加有效磁盤馬達(dá)數(shù)量(這能減少搜索時(shí)的開銷)或者將不同的文件鏈接到不同的磁盤上又或者分盤:
使用符號(hào)鏈接
意思是,把 MyISAM 表的索引文件和/或數(shù)據(jù)文件從數(shù)據(jù)目錄下通常的地方鏈接到其他磁盤上(這也是分盤)。如果這個(gè)磁盤沒有其他用途的話,這對(duì)讀寫次數(shù)都比較好。詳情請(qǐng)看%26quot;7.6.1 Using Symbolic Links%26quot;。
分盤
如果有好幾個(gè)磁盤,就把第一個(gè)區(qū)塊放在第一個(gè)磁盤,把第二個(gè)區(qū)塊放在第二個(gè)磁盤,以此類推。這意味著正常的數(shù)據(jù)大小比分盤后的數(shù)據(jù)小(或者完全一樣),這能獲得更好性能。分盤完全依賴于操作系統(tǒng)以及分盤的大小,因此要用不同的分盤大小基準(zhǔn)測(cè)試應(yīng)用程序。詳情請(qǐng)看%26quot;7.1.5 Using Your Own Benchmarks%26quot;;鶞(zhǔn)測(cè)試的速度的不同完全依賴于分盤大小。依賴分盤設(shè)置參數(shù)以及磁盤數(shù)量,會(huì)得到大量不同的測(cè)量結(jié)果。必須隨機(jī)或者順序選擇優(yōu)化方法。
可能會(huì)為了可靠性采用 RAID 0+1,這時(shí),就必須用 2*N 個(gè)驅(qū)動(dòng)去來保存 N 個(gè)驅(qū)動(dòng)器上的數(shù)據(jù)。如果有足夠的內(nèi)存這可能是最好的方法。不過,這也需要使用卷管理軟件來有效地管理數(shù)據(jù)。
另一個(gè)好辦法是RAID的級(jí)別根據(jù)數(shù)據(jù)的重要性而定。例如,把能重新生成的有點(diǎn)重要的數(shù)據(jù)保存在RAID 0磁盤上,把很重要的數(shù)據(jù)如主機(jī)信息日志等保存在RAID 0+1或者RAID N磁盤上。RAID N在有很多個(gè)寫入時(shí)可能會(huì)有問題,因?yàn)闀?huì)同時(shí)請(qǐng)求更新同一個(gè)字節(jié)位。
在Linux上,可以用 hdparm 來配置磁盤接口以獲得更好的性能(在負(fù)載下高達(dá)100%也不是不可能的)。以下 hdparm 配置選項(xiàng)對(duì)MySQL就很合適,對(duì)其他應(yīng)用程序可能也不錯(cuò):
hdparm -m 16 -d 1
注意,當(dāng)使用這個(gè)命令之后性能和可靠性會(huì)依賴硬件,因此我們強(qiáng)烈建議在使用 hdparm 后一定要做測(cè)試。請(qǐng)查閱 hdparm 的手冊(cè)。如果沒有正確使用 hdparm,則可能導(dǎo)致文件系統(tǒng)沖突,所以在試驗(yàn)之前備份一下。
還可以在數(shù)據(jù)庫使用的文件系統(tǒng)上設(shè)置其參數(shù):如果無需知道文件的最后訪問時(shí)間(這對(duì)數(shù)據(jù)庫系統(tǒng)沒用),則在掛載文件系統(tǒng)時(shí)使用 -o noatime 選項(xiàng)。這就會(huì)略過更新文件系統(tǒng)節(jié)點(diǎn)的最后訪問時(shí)間,也就減少了磁盤搜索。在很多操作系統(tǒng)上,可以在掛載文件系統(tǒng)是使用 -o async 選項(xiàng)以異步更新它。如果你的機(jī)器相當(dāng)?shù)姆(wěn)定,這會(huì)帶來性能提升但可靠性并沒犧牲多少(默認(rèn)只能在Linux上這樣用)。
使用符號(hào)鏈接
可以把數(shù)據(jù)表或者數(shù)據(jù)庫移動(dòng)到別的目錄下,然后用符號(hào)鏈接到新的位置來代替。你可能想這么做,例如,想要把表分布到不同的磁盤上以提高系統(tǒng)速度,就把它們移動(dòng)到有更多剩余空間的磁盤上。
建議只是把數(shù)據(jù)庫鏈接到其他磁盤上,數(shù)據(jù)表的鏈接是最后的選擇。
在 Unix 上符號(hào)鏈接數(shù)據(jù)庫
在Unix上,給數(shù)據(jù)庫做符號(hào)鏈接的方法是先在其他磁盤上創(chuàng)建一個(gè)目錄,然后再把它鏈接到MySQL數(shù)據(jù)文件目錄下。
shell%26gt; mkdir /dr1/databases/test
shell%26gt; ln -s /dr1/databases/test /path/to/datadir
MySQL不支持把一個(gè)目錄鏈接成多個(gè)數(shù)據(jù)庫。只要沒有在數(shù)據(jù)庫間做符號(hào)鏈接,那么它就沒問題。假使在MySQL數(shù)據(jù)文件目錄下已經(jīng)有一個(gè)數(shù)據(jù)庫 db1 了,然后把 db1 鏈接到 db2 :
本文源自:http://www.n7362.cn轉(zhuǎn)載請(qǐng)注明出處! 更多數(shù)據(jù)庫知識(shí)交流請(qǐng)鏈接:http://www.n7362.cn/html/jsjl/sjk/
本文由站河南北大青鳥校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學(xué)習(xí)技巧、就業(yè)案例、招生詳情等問題,可以對(duì)在線咨詢老師進(jìn)行一對(duì)一問答!
推薦資訊
- 女生沒有基礎(chǔ)能學(xué)it嗎?... 2013-11-14
- 計(jì)算機(jī)學(xué)出來能干什么... 2019-08-08
- 鄭州北大青鳥翔天信鴿就業(yè)周榜,... 2021-08-25
- 鄭州北大青鳥翔天信鴿班級(jí)里的那... 2019-11-02
- 北大青鳥翔天中心:如何選擇一個(gè)靠... 2012-06-20
熱點(diǎn)資訊
- 學(xué)習(xí)SQL數(shù)據(jù)庫有哪些方法?... 2018-09-07
- 河南IT培訓(xùn):SQLSERVER2000T-SQL的... 2018-09-07
- 使用access數(shù)據(jù)庫有哪些好處呢?... 2018-09-07
- 網(wǎng)站數(shù)據(jù)庫老是被入侵該怎么辦?... 2018-09-07
- 半小時(shí)讓你快速M(fèi)ySQL 入門... 2018-09-07