我们在开发过程中,经常在进行sql查询或者写入操作时会谈到一次IO操作的时间,但是这个一次IO操作时间究竟是什么意思,是多久的时间呢。
其实,这就要牵扯到数据库存储的原理了,我们都知道,我们的数据库数据实际上是存储在磁盘中的,每次进行读取数据时,其实是去磁盘拿数据,再到内存里面操作的。
这里我们首先要理解一下磁盘的一些基本常识,磁盘是如何进行查找数据的呢?
磁盘的结构分为移动臂、磁道、读写磁头、柱面等主要部分,如下图所示:
而当我们进行例如一个普通的select查询某条数据时,每查询一次数据其实就是去磁盘中根据移动臂的移动带动磁头的移动进行查找数据,而数据就是存磁道上的。磁头会进行旋转找到该数据存放的位置,而这个过程,其实就是一次IO操作。这个一次IO操作的时间其实就是磁头通过选择找到一行数据所花费的时间。