关于磁盘随机IO和顺序IO疑问?
数据随机IO问题:
1. 当数据量超过内存大小的时候, 随机IO的问题出现.
2. 页级缓存在大量全随机IO的情况下内存利用率低,同时页级缓存还带来了大量额外连续IO的问题.
3. B+树当索引大于内存量, 每次随机的索引搜索,插入和删除都将有至少一次随机IO.
4. 索引组织表(HashTable)占用内存太大, 同时每次随机的索引搜索,插入和删除都将有一次随机
在网上查到以上资料,可是不理解!例如:
1,为什么数据量大于内存大小就会出现随机IO?
3,B+树索引大于内存量,“每次随机的索引搜索”这句话如何理解??
求指教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
小于内存的话,可以先放在内存里,然后直接从内存读写
B+树的查找运算有两种:从最小关键字起顺序查找,从根结点开始进行随机查找。
随机访问的特点是每次IO请求的数据在磁盘上的位置跨度很大(如:分布在不同的扇区),因此N个非常小的IO请求(如:1K),必须以N次IO请求才能获取到相应的数据。
顺序访问的特点跟随机访问相反,它请求的数据在磁盘的位置是连续的。当系统发起N个非常小的IO请求(如:1K)时,因为一次IO是有代价的,系统会取完整的一块数据(如4K、8K),所以当第一次IO完成时,后续IO请求的数据可能已经有了。这样可以减少IO请求的次数。这也就是所谓的预取。
随机访问和顺序访问同样是有应用决定的。如数据库、小文件的存储的业务,大多是随机IO。而视频类业务、大文件存取,则大多为顺序IO。