索引是如何将随机 IO 转为顺序 IO 的?
索引如何将随机 IO 转为顺序 IO
在《高性能 MySQL》一书中,提到了索引的一个优势是“可以将随机 I/O 变成顺序 I/O”(P152)。然而,全面扫描数据库时,不走索引不也是顺序 I/O 吗?
这种理解似乎存在误区。若不走索引,原始数据在磁盘上的存储顺序是乱序的,需要通过逐行扫描的方式读取整张表。这就像在书架上找某本书,如果没有目录,只能一页一页地翻看,这种操作就是随机 I/O。
而当使用索引时,索引就像书架上的目录,可以快速定位到指定数据所在的位置。就像在书架上查到某本书的页码后直接翻到相应页面一样,不需要逐页搜索,这样就避免了随机 I/O 的产生,转而变成了顺序 I/O。
以上就是索引是如何将随机 IO 转为顺序 IO 的?的详细内容,更多请关注其它相关文章!