将数据存储在磁盘(IO读写)--进化-->将数据存储在数据库中
磁盘:
①寻址--毫秒ms级别的。
②带宽--单位时间内能传输的字节流能有多少,几个G或几M。
内存:
①寻址--纳秒ns级别的。秒=1000毫秒=1000*1000微妙=1000*1000*1000纳秒。在寻址上,磁盘比内存慢了10万倍。
②带宽--很大
I/O Buffer:
磁盘中的磁道和扇区,一扇区512字节byte,如果磁盘容量很大,而扇区很小,势必会增大索引成本。
操作系统无论从磁盘读取多少数据都是以4K为单位。
随着文件变大,速度会越慢,磁盘IO会成为瓶颈。
数据库:
数据库的出现是为了改善磁盘IO的瓶颈。但整体而言,磁盘IO和数据库的IO总量是相等的,因此就有了索引的概念,如果没有索引,仅仅只是建了数据库和表,不会有太大帮助,依旧很慢。
数据库中最小的单位为page页,以4k为单位。
关系型数据库建表,必须先给出schema,数据类型(字节宽度),存数据时倾向于行级存储。先给出字节宽度的好处时,保留了位置,在插入或更新数据时直接进行覆写而不用进行数据移动。
索引也是数据,和表数据一样都存储在硬盘中。在内存中创建一棵B+树用于将索引的区间和偏移存储起来,索引和数据存在磁盘,因为内存有限,存不下这么多的数据,利用索引提高遍历查找的速度,减少磁盘IO和寻址的过程,但数据还是从磁盘获取。
关于磁盘和内存的常识以及磁盘I/O进化史
原创a772304419 ©著作权
©著作权归作者所有:来自51CTO博客作者a772304419的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:volatile的实现细节
下一篇:markword用于标记锁的位数
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
ChatGPT的进化史
在此过程中,Google的Bard,百度的文心一言等类似的AI也迅速崛起,迅速瓜分着人工智能助手的市场份额。因为新核终端几乎人手一个,分析和
chatgpt 聊天机器人 区块链 数据共享 -
Android的进化史
TC Dream,是首款搭载Andr
android G1 Android 6.0 512MB Android 4.0 -
见微知著 - HTTP的进化史
带你从头了解你不知道的,揭开那层神秘面纱
客户端 数据 服务端 -
PyTorch 实战:MNIST 手写数字识别全流程
用。
#pytorch #人工智能 #python python 预处理 -
每日分享程序员掌握的知识之:MySQL的基本原理!前篇
内存缓冲区 写满了 怎么办 内存淘汰 LRU 我尾部的数据 有可能是热数据Buffer Pool的内存淘汰策略冷热分区的LRU策略。
#mysql #数据库 #dubbo #后端 #系统架构 -
skynet.newservice接口分析
化完成后,会通过文本协议通知 launch
#学习 #后端 #笔记 #安全架构 初始化

















