在计算机系统中,预读(Prefetching)是一种优化策略,用于提前将未来可能需要访问的数据加载到缓存中,以减少对主存或磁盘的实际访问延迟。这是通过在当前数据被请求之前预先加载相关数据的方式来实现的。
在磁盘读写操作中,预读通常指的是在请求某个数据块时,系统不仅会读取请求的数据块,还会预先读取相邻的一些数据块,因为这些数据块可能在未来的访问中被用到。这有助于提高磁盘读取效率,因为磁盘通常是按块(例如,4KB 或 16KB)进行读取的。
MySQL 存储数据的基本单位是数据页,大小通常为16KB。当查询需要读取某个数据页时,磁盘预读会提前读取相邻的数据页,以提高后续查询访问这些页的效率。这样,如果查询需要的数据确实在相邻的页中,就能够避免额外的磁盘 I/O 操作,从而提高性能。
磁盘预读是一种利用空间局部性和时间局部性的优化策略,通过合理预测未来数据的访问模式,提前加载数据,从而减少因数据访问而引起的延迟。