美文网首页
为什么mysql优化要尽量保证顺序读?

为什么mysql优化要尽量保证顺序读?

作者: Rena的秘密 | 来源:发表于2022-09-22 11:55 被阅读0次

    因为顺序读取磁盘数据比随机读取磁盘数据快的多,相差几十-几百的数量级。(40-400倍)

    磁盘图如下:

    进行磁盘读取的过程:

    1.先寻找数据所在柱面号、盘片号、扇区号,从而定位到数据所在扇区(所用的时间称为寻道时间,时间最久)

    2.然后盘面旋转到刚才定位的扇区所在位置,磁头读取数据(所用的时间称为旋转时间)

    3.最后把读取的数据传输出去(所用的时间称为传输时间)

    所以磁盘IO时间=寻道时间+旋转时间+传输时间

    磁盘预读:每次读取为一页(一般4kb大小),可能包含几个扇区(一般512bit)。

    如果顺序读取的话,可以省略寻道时间,把相邻的几个扇区都读取出来。如果随机读取,每次读取数据,都需要重复以上3个步骤,耗费时间更久。

    例子:

    计算机中存储一个二维数组是按行存储的,当前例子类按行读取类似与顺序读,按列读取类似与随机读,并不是存储到磁盘上了,只是验证一下顺序读和非顺序读的差别之大。

    磁盘文件、内存都是顺序读速度快于随机读的。

    相关文章

      网友评论

          本文标题:为什么mysql优化要尽量保证顺序读?

          本文链接:https://www.haomeiwen.com/subject/ktknortx.html