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