mysql的预读机制

MySQL通过预读机制减少磁盘I/O次数,包括线性预读和随机预读。线性预读以extent(64个page)为单位,而随机预读则更细致到extent内的page。预读策略旨在提前加载可能需要的数据,优化数据库查询效率。
摘要由CSDN通过智能技术生成

mysql的预读机制

我们知道,只要不存在或减少磁盘 I/O,MySQL的查询速度自然就会变快。那么对于加载数据页这种无法避免的磁盘 I/O 来说是否有更好的方式呢?既然避免不了,那减少磁盘 I/O 的次数总可以吧?这就是我们接下来要讲的缓冲池的预读机制。

磁盘读写的时,是按照页的方式来读取的(你可以理解为固定大小的数据,例如一页数据为 16K),每次至少读入一页的数据,如果下次读取的数据就在页中,就不用再去磁盘上读取了,从而减少了磁盘 I/O,比如可能会提前缓存接下来可能会用到的相邻的数据页,这里涉及两种预读算法来提高IO性能:线性预读(linear read-ahead)和随机预读(randomread-ahead)。

介绍两种算法前,我们先明确下算法中的一个定义:

extent:innodb中将64个page划分为一个extent。

为了区分这两种预读的方式,我们可以把线性预读放到以extent为单位,而随机预读放到以extent中的page为单位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值