為什麼硬碟隨機讀寫超慢,而順序讀寫超快

2022-07-21 14:15:19 字數 740 閱讀 4362

我們都知道硬碟順序讀寫很快,像hdd硬碟都能達到20萬每秒的iops,而隨機讀寫按照7200轉的hdd的iops在100左右,為什麼那?

要搞清楚這個問題需要我們先來對磁碟有乙個基本的認識;

一、磁碟的基本了解

基本的基本組成部分,磁碟主要有盤面、磁頭、懸臂組成如下圖

柱面:有上下大小相等的盤面的扇面組成;

iops  = 磁碟平均延遲時間+平均尋道時間;

盤面旋轉,對準懸臂的時間;這個時間等於,1秒內半盤面訪問的時間,如7200轉的hdd,一秒能轉240 = 7200/60 * 2(平均只需要轉半盤面);

1s/240 = 4.17ms;

是指懸臂找到對應的磁軌,再找到扇面所花費的時間,一般在4-10ms;

所以 iops = 1s/8ms =  125 iops 或者   iops = 1s/14ms =  71 iops

所以我們一般都說hdd隨機讀iops在一百左右;

縮短尋道的時間,只用磁碟的1/4,或者1/2,由於大量的減少了尋道路徑,所以尋道的時間降低,從而降低了iops,在2010前期很多網際網路公司都是採用這種方式來提高iops,也能節約成本,因為磁碟的1/4的儲存也比提高磁碟的轉速便宜得多;

為什麼count 這麼慢?

當我們查詢一張資料量很大的表時,使用sql select count from t1 這條sql非常耗時。那麼當執行count 的時候發生了什麼呢?count 1 的sql執行計畫如下 count 的sql執行計畫如下 兩者執行計畫相同,所以速度相同。首先初始化時,執行一次精確的計數 select ...

為什麼count 這麼慢

不同count的用法 count 是乙個聚合函式,對於返回的結果集,一行行地判斷,如果count函式的引數不是null,累計值就加1,否則不加。最後返回累計值。count的用法有多種,分別是count count 字段 count 1 count 主鍵id 那麼多種用法,到底有什麼差別呢?當然,前提...

硬碟為什麼要分割槽?

當今,分割槽的主要原因是讓資料與系統分離,便於維護。在fat32時代,一方面分割槽不得超過32gb,此外還要考慮 簇尺寸帶來的空間浪費問題。在ntfs時代,fat32的種種問題已經不用考慮了。由於windows存在登錄檔等原因,這個理念在windows下不太明顯,但在類unix系統下非常明顯。lin...