关于磁盘和内存的常识以及磁盘I/O进化史
將數(shù)據(jù)存儲(chǔ)在磁盤(IO讀寫)--進(jìn)化-->將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中
磁盤:
①尋址--毫秒ms級(jí)別的。
②帶寬--單位時(shí)間內(nèi)能傳輸?shù)淖止?jié)流能有多少,幾個(gè)G或幾M。
內(nèi)存:
①尋址--納秒ns級(jí)別的。秒=1000毫秒=1000*1000微妙=1000*1000*1000納秒。在尋址上,磁盤比內(nèi)存慢了10萬(wàn)倍。
②帶寬--很大
I/O Buffer:
磁盤中的磁道和扇區(qū),一扇區(qū)512字節(jié)byte,如果磁盤容量很大,而扇區(qū)很小,勢(shì)必會(huì)增大索引成本。
操作系統(tǒng)無(wú)論從磁盤讀取多少數(shù)據(jù)都是以4K為單位。
隨著文件變大,速度會(huì)越慢,磁盤IO會(huì)成為瓶頸。
數(shù)據(jù)庫(kù):
數(shù)據(jù)庫(kù)的出現(xiàn)是為了改善磁盤IO的瓶頸。但整體而言,磁盤IO和數(shù)據(jù)庫(kù)的IO總量是相等的,因此就有了索引的概念,如果沒(méi)有索引,僅僅只是建了數(shù)據(jù)庫(kù)和表,不會(huì)有太大幫助,依舊很慢。
數(shù)據(jù)庫(kù)中最小的單位為page頁(yè),以4k為單位。
關(guān)系型數(shù)據(jù)庫(kù)建表,必須先給出schema,數(shù)據(jù)類型(字節(jié)寬度),存數(shù)據(jù)時(shí)傾向于行級(jí)存儲(chǔ)。先給出字節(jié)寬度的好處時(shí),保留了位置,在插入或更新數(shù)據(jù)時(shí)直接進(jìn)行覆寫而不用進(jìn)行數(shù)據(jù)移動(dòng)。
索引也是數(shù)據(jù),和表數(shù)據(jù)一樣都存儲(chǔ)在硬盤中。在內(nèi)存中創(chuàng)建一棵B+樹用于將索引的區(qū)間和偏移存儲(chǔ)起來(lái),索引和數(shù)據(jù)存在磁盤,因?yàn)閮?nèi)存有限,存不下這么多的數(shù)據(jù),利用索引提高遍歷查找的速度,減少磁盤IO和尋址的過(guò)程,但數(shù)據(jù)還是從磁盤獲取。
?
總結(jié)
以上是生活随笔為你收集整理的关于磁盘和内存的常识以及磁盘I/O进化史的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JVM内存压缩开启/不开启各占几个字节
- 下一篇: zookeeper的安装及配置教程(步骤