我們都知道硬碟順序讀寫很快,像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...