自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

硬盤是如何影響數(shù)據(jù)庫性能的?

存儲 存儲設(shè)備
現(xiàn)在主流的機械硬盤基本上都是 7200 轉(zhuǎn)的 SATA 硬盤,在全速運轉(zhuǎn)并且是順序讀寫的情況下,性能也就是 150MB~160MB/s 左右;如果涉及到數(shù)據(jù)庫讀寫等隨機性較強的 IO 操作,這個性能還要再下降。

[[408630]]

前面松哥和大家聊了 CPU 和內(nèi)存對于數(shù)據(jù)庫性能的影響,但是大家想想,無論如何,數(shù)據(jù)最終都是要存入硬盤中的,所以硬盤肯定也會影響到數(shù)據(jù)庫的性能,那么硬盤到底是如何影響數(shù)據(jù)庫性能的,今天我們就來簡單聊聊。

  1. 硬盤的使用,有四個不同的方向:
  2. 傳統(tǒng)的機械硬盤。
  3. 使用 RAID 增強機械硬盤性能。
  4. 使用固態(tài)存儲 SSD。

使用網(wǎng)絡(luò)存儲 NAS 和 SAN。

接下來我們就針對這四個方向逐一進行分析。

1.機械硬盤

這是最為常見的一種硬盤。松哥剛上大學(xué)那會,買筆記本電腦,基本上都是這種機械硬盤。不過現(xiàn)在小伙伴們買電腦,應(yīng)該很多都是固態(tài)硬盤了。機械硬盤的特點就是便宜、單盤存儲空間較大,不過問題也很明顯,那就是讀寫較慢,相比于內(nèi)存每秒 10GB 以上的數(shù)據(jù)傳輸,機械硬盤的數(shù)據(jù)真的慢的可憐。我剛畢業(yè)的時候,有一段時間特別想買 Mac,特別糾結(jié)。后來把我的 Windows 筆記本的機械硬盤換成了固態(tài)硬盤,開機可以秒開了,才把買 Mac 的想法掐滅了(一滅就是三年,三年后還是入手了 Mac)。

現(xiàn)在主流的機械硬盤基本上都是 7200 轉(zhuǎn)的 SATA 硬盤,在全速運轉(zhuǎn)并且是順序讀寫的情況下,性能也就是 150MB~160MB/s 左右;如果涉及到數(shù)據(jù)庫讀寫等隨機性較強的 IO 操作,這個性能還要再下降。

傳統(tǒng)的機械硬盤在讀寫數(shù)據(jù)的時候,有三個步驟:

  1. 尋道:磁頭定位到數(shù)據(jù)所在的磁道上,這是一個非常耗時的操作。目前 SATA 硬盤的平均尋道時間一般為 8~10 ms。
  2. 旋轉(zhuǎn)延遲:到了特定的磁道之后,硬盤盤片需要旋轉(zhuǎn),以便要讀寫的扇區(qū)能夠和磁頭吻合。7200 轉(zhuǎn)的硬盤,旋轉(zhuǎn)一周的時間為 1000/120=8.33 毫秒,平均旋轉(zhuǎn)延時則為 4.17 毫秒左右。
  3. 數(shù)據(jù)傳輸:磁頭定位到需要讀取的扇區(qū)之后,開始傳輸數(shù)據(jù)。假設(shè)硬盤順序讀取的平均速度為 150MB/s,則讀取 4KB 的數(shù)據(jù)需要 4KB*1000/(150*1024KB)=0.026 毫秒,此值幾乎可以忽略不計。讀取 1MB 的數(shù)據(jù)需要 1MB*1000/(150MB)=6.67 毫秒,可見讀取大塊數(shù)據(jù)時,其真正用來讀取數(shù)據(jù)的時間一般也小于尋道時間和旋轉(zhuǎn)延時的和。

上面三個步驟所耗費的時間,也就是數(shù)據(jù)讀取的時間。

那么該如何選擇磁盤呢?我們應(yīng)該從如下幾個方面來考慮:

  1. 單盤容量盡量大。
  2. 數(shù)據(jù)傳輸速度盡量快,這個取決于磁盤主軸轉(zhuǎn)動速度,以及數(shù)據(jù)存儲在磁盤表面的密度,一般來說,這個并不會成為我們的瓶頸。
  3. 訪問時間盡量夠快。
  4. 主軸轉(zhuǎn)速盡量快,根據(jù)上面的介紹,磁盤的轉(zhuǎn)速會影響到數(shù)據(jù)的訪問時間和讀取時間。
  5. 還有一個就是磁盤的物理尺寸。這個也好理解,磁盤越小,數(shù)據(jù)讀取速度肯定越快。不過一般來說,磁盤越小,意味著存儲空間可能也會變小,這就和第一點相悖了,在實際選擇中需要權(quán)衡。

2.RAID

獨立硬盤冗余陣列(RAID, Redundant Array of Independent Disks),以前也叫廉價磁盤冗余陣列(Redundant Array of Inexpensive Disks),簡稱磁盤陣列。RAID 利用虛擬化存儲技術(shù)把多個硬盤組合起來,成為一個或多個硬盤陣列組,目的為提升性能或?qū)崿F(xiàn)數(shù)據(jù)冗余,或是兩者同時提升。

在具體運行中,RAID 層級不同,資料也會以多種模式分散于各個硬盤,RAID 層級的命名會以 RAID 開頭并帶數(shù)字,例如:RAID0、RAID1、RAID5、RAID6、RAID7、RAID01、RAID10、RAID50、RAID60,每種層級都有其理論上的優(yōu)缺點,不同的層級在數(shù)據(jù)冗余和性能提升兩個目標間獲取平衡。

簡單來說,RAID 把多個硬盤組合成為一個邏輯硬盤,因此,操作系統(tǒng)只會把它當作一個實體硬盤。RAID 常被用在服務(wù)器電腦上,并且常使用完全相同的硬盤作為組合,由于硬盤價格的不斷下降同時 RAID 功能更加有效地與主板集成,這使得 RAID 成為普通用戶的一個選擇,特別是需要大容量存儲空間的工作使用 RAID 就特別合適,如:視頻與音頻制作。

我們來看看幾個常見的 RAID 層級:

RAID0

RAID0 亦稱為數(shù)據(jù)條帶,它將兩個以上的磁盤并聯(lián)起來,成為一個大容量的磁盤。在存放數(shù)據(jù)時,分段后分散存儲在這些磁盤中,因為讀寫時都可以并行處理,所以在所有的級別中,RAID0 的速度是最快的(想當于可以同時讀取兩個磁盤)。但是 RAID0 既沒有冗余功能,也不具備容錯能力,如果一個磁盤(物理)損壞,所有數(shù)據(jù)都會丟失,RAID0 也是實現(xiàn)成本最低的 RAID 模式。在一些不擔心數(shù)據(jù)丟失的場景下(例如數(shù)據(jù)備份),可以使用 RAID0。

RAID1

兩組以上的 N 個磁盤相互作鏡像,在一些多線程操作系統(tǒng)中能有很好的讀取速度,理論上讀取速度等于硬盤數(shù)量的倍數(shù),與 RAID 0 相同,另外寫入速度有微小的降低(因為要寫到兩個磁盤上去)。RAID1 只要一個磁盤正常即可維持運作,可靠性最高。

其原理為在主硬盤上存放數(shù)據(jù)的同時也在鏡像硬盤上寫一樣的數(shù)據(jù),當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工作。因為有鏡像硬盤做數(shù)據(jù)備份,所以 RAID 1 的數(shù)據(jù)安全性在所有的 RAID 級別上來說是最好的。但無論用多少磁盤做 RAID 1,僅算一個磁盤的容量,所以它又是所有 RAID 中磁盤利用率最低的一個級別。RAID 1 可以在不影響性能的前提下,最大限度保證系統(tǒng)的可靠性和可修復(fù)性。

如果用兩個不同大小的磁盤建 RAID 1,可用空間為較小的那個磁盤,較大的磁盤多出來的空間也可以分割成一個區(qū)來使用,不會造成浪費。

RAID5

RAID5 也稱之為分布式奇偶校驗磁盤陣列,這種方式通過分布式奇偶校驗塊把數(shù)據(jù)分散到多個磁盤上,這樣如果任何一個盤數(shù)據(jù)丟失,都可以從奇偶數(shù)據(jù)校驗塊中重建。但是如果是兩個盤的數(shù)據(jù)丟失,則整個數(shù)據(jù)卷就無法恢復(fù)了。

RAID10

RAID 10 是先分割數(shù)據(jù)再鏡像。首先將所有硬盤分為兩組,先對磁盤做 RAID1,然后再對兩組 RAID1 的磁盤做 RAID 0,所以它的讀寫性能都比較好。

RAID 01 則是跟 RAID 10 的程序相反,先對磁盤做 RAID0,再做 RAID 1。

當 RAID 10 有一個硬盤受損,其余硬盤會繼續(xù)運作,而 RAID 01 只要有一個硬盤受損,同組 RAID 0 的所有硬盤都會停止運作,只剩下其他組的硬盤運作,可靠性較低。因此,RAID 10 比 RAID 01 常用,零售主板絕大部分支持 RAID 0/1/5/10,但不支持 RAID 01。

那么選哪種呢?下面這張表比較了不同 RAID 層級各自的特點:

3.固態(tài)硬盤

固態(tài)硬盤不需要多說,相比于傳統(tǒng)的機械硬盤有如下三個優(yōu)勢:

  1. 沒有機械結(jié)構(gòu),不怕震動(震動有可能讓磁頭撞到碟片上劃花碟片導(dǎo)致?lián)p壞)。
  2. 沒有尋道過程,因此讀寫文件的延遲更低。
  3. 連續(xù)讀寫文件的速度一般比機械硬盤快。

目前SSD的主流接口分為,SATA 3.0、M.2、PCI-E 三種,U.2 和 mSATA 目前并不多見。

SATA 和 M.2 或 PCI-E 的主要區(qū)別在于二者采用不同的通道:PCI-E 通道的汽車就像是在高速上行駛,而 SATA 通道的汽車就像是在崎嶇山路上行駛,你說哪個速度快?

下面這張表格描述了不同接口的傳輸速率:

相比于機械硬盤,固態(tài)硬盤具有更好的隨機讀寫功能,順序讀寫其實機械硬盤也不差,但是隨機讀寫就會差很多,而數(shù)據(jù)庫操作中,隨機讀寫又很重要,所以固態(tài)硬盤的優(yōu)勢明顯。

4.網(wǎng)絡(luò)存儲

網(wǎng)絡(luò)存儲其實不太適合存儲數(shù)據(jù)庫文件,光是網(wǎng)絡(luò)延遲就夠令人崩潰了。不過如果想存放數(shù)據(jù)庫備份文件,倒是可以用網(wǎng)絡(luò)存儲。另外就是需要注意數(shù)據(jù)庫服務(wù)器的帶寬要夠用,別上面的東西整了一大堆,最后服務(wù)器帶寬 128KB。。。

參考資料:

https://zhuanlan.zhihu.com/p/19592076

https://ssd.zol.com.cn/676/6766649_all.html

本文轉(zhuǎn)載自微信公眾號「江南一點雨」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系江南一點雨公眾號。

 

責(zé)任編輯:武曉燕 來源: 江南一點雨
相關(guān)推薦

2017-10-23 13:52:31

數(shù)據(jù)庫硬件

2010-11-26 14:52:10

MySQL系統(tǒng)變量

2010-06-17 13:34:47

SQL Server數(shù)

2010-11-04 09:07:25

2009-06-30 15:02:41

磁盤排序Oracle數(shù)據(jù)庫性能

2009-06-22 10:41:43

ibmdwLotus

2023-10-08 08:09:16

數(shù)據(jù)庫性能服務(wù)器

2010-05-10 09:48:16

SQL Server數(shù)

2019-03-07 15:06:48

MySQL數(shù)據(jù)庫數(shù)據(jù)庫優(yōu)化

2010-10-12 10:58:13

NoSQL

2016-10-08 18:13:55

數(shù)據(jù)庫性能工具數(shù)據(jù)庫管理系統(tǒng)

2017-06-19 16:20:09

數(shù)據(jù)庫性能工具

2009-07-02 00:26:00

臨時表空間Oracle數(shù)據(jù)庫性能

2022-08-16 14:40:09

SQL數(shù)據(jù)庫內(nèi)存結(jié)構(gòu)

2019-07-23 11:41:45

數(shù)據(jù)庫SQLDocker

2022-12-05 08:00:00

數(shù)據(jù)庫向量化數(shù)據(jù)庫性能

2022-06-28 15:00:28

數(shù)據(jù)庫性能操作系統(tǒng)

2010-04-16 10:18:10

Import性能

2011-04-18 09:03:36

數(shù)據(jù)庫查詢

2022-06-29 09:14:45

PolarDB云原生數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號