MySQL-硬件優化

MySQL需要的四種基本資源:CPU,內存,硬盤和網絡資源

數據庫併發問題:
邏輯併發問題:應用程序可以看到資源的競爭,如表或行鎖競爭用。這些問題通常需要好的策略來解決,如改變映月宮程序、使用不用功的存儲引擎、改變服務器配置,或者使用不同的鎖定提示或事務隔離級別。
內部併發問題:比如信號、訪問InnoDB緩衝池頁面的資源爭用。可以嘗試通過改變服務器的設置、改變操作系統,或使用不同的硬件解決這些問題,但通常只能緩解而無法徹底消滅。在某些情況下,可以使用不同的存儲引擎或給存儲引擎打補丁,可以幫助環節這些問題。

磁盤讀取過程:
移動讀取磁頭到磁盤表面上的正確位置。
等待磁盤旋轉,所有所需的數據在讀取磁頭下。
等待磁盤旋轉過去,所有所需的數據都被讀取磁頭讀出。

磁盤影響因素:
存儲容量,傳輸速度,訪問時間,主軸轉速,物理尺寸

閃存性能特點:
相比硬盤有更好的隨機讀寫性能。閃存設備通常讀明顯比寫快。
相比硬盤有更好的順序讀寫性能。但是相比而言不如隨機I/O的改善那麼大,因爲硬盤隨機I/O比順序I/O要慢得多。入門級固態硬盤的順序讀取實際上還可能比傳統硬盤慢。
相比硬盤更好地支持併發。

RAID可以實現冗餘,擴展存儲容量,緩存以及加速

RAID級別如下:
RAID0:如果只是簡單評估成本和性能,RAID0是成本最低和性能最高的RAID配置,但是,如果考慮數據恢復的因素,RAID0的代價非常高。因爲RAID0沒有冗餘,建議只在不擔心數據丟失的時候用。RAID0沒有提供任何冗餘,即使在RAID中表示冗餘。實際上,RAID0陣列的損壞率比單塊磁盤損壞率要高。
RAID1:在很多情況下提供很好的讀性能,並且在不同的磁盤間冗餘數據,所以很好的冗餘性。RRAID1在讀上比RAID0快一些。他非常適合用來存放日誌或者類似的工作。因爲順序寫很少需要底層有很多磁盤。者通常也是隻有兩塊磁盤又需要冗餘的低端服務器的選擇。
RAID5:通過分佈奇偶校驗塊把數據分散到多個磁盤,這樣,如果任何一個盤的數據失效,都可以從奇偶校驗中重建。如果兩個磁盤失效,則整個卷的數據無法恢復。就沒個存儲單元的成本而言,這是最經濟的冗餘配置,因爲整個陣列只消耗了一塊磁盤的存儲空間。
RAID10:由分片的鏡像組成,所以對讀和寫都有良好的擴展性。控制器通過一種串聯鏡像的實現。經常被訪問的數據可能被放在一對機械硬盤上,而不是分佈很多份,可能遇到性能不佳的情況。
RAID50:由條帶化的RAID組成。如果有很多盤的化,這是RAID5和RAID10的一個折中

文件存放

MySQL創建多種類型文件:
數據和索引文件,事務日誌文件,二進制日誌文件,常規日誌,臨時文件和臨時表

網絡配置

運行不正常的網絡的原因:丟包,域名解析系統(DNS)損壞或變慢。

在生產服務器上啓用skip_name_resolve是個好主意。啓動skip_name_resolve選項,MySQL將不會做任何DNS查找的工作。意味着用戶賬戶必須在host列使用具有唯一性的IP地址,“localhost"或者IP地址通配符。那些在host列使用主機名的用戶賬戶將不能登錄。
TCP積壓:通過MySQL的back_log選項來配置。通過控制MySQL的傳入tcp連接隊列的大小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章