开发者社区 问答 正文

关于mysql磁盘IO的问题

有几个关于磁盘IO的问题需要大家的帮助,请大家不吝赐教。
在mysql的学习中和查看相关的资料中,经常听到IO瓶颈之类的问题。我想知道的问题有:
1、什么叫IO单元
2、什么叫一次IO
3、IO怎么计算,比如我的一个sql语句需要读取多少个磁盘IO,是查询的数据多IO多,数据少IO就少吗?

展开
收起
落地花开啦 2016-02-14 17:44:58 2876 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    IO单元,因为磁盘IO比较慢,OS不会一次就读那么64bit一丁点,而会把一大块读到内存里边。这一大块的体积,应该就是这个IO单元。Windows下这个叫做簇,NTFS一般是4K,最多貌似可以设成64K。
    一次IO,顾名思义,把内存里一个IO单元写到磁盘上或者从磁盘读一个IO单元。
    IO怎么算,这个就太复杂了,数据库会对SQL生成执行计划,然后根据执行计划执行。执行计划可以作为一个参考,但实际上的执行IO还取决于数据库的存储方法,MySQL本身就有多种存储引擎,像Oracle这种甚至可以直接用磁盘分区,这都会对IO次数产生很大的影响。

    2019-07-17 18:42:49
    赞同 展开评论