mysql索引如何将随机I / O转换为顺序I / O.

时间:2017-04-13 05:56:39

标签: mysql indexing

High Performance MySQL表示索引的好处之一是“索引将随机I / O转换为顺序I / O”,所以我不明白mysql索引如何将随机I / O转换为顺序I / O。

2 个答案:

答案 0 :(得分:0)

我认为它们意味着当你在表中有这样的索引列时,你可以很容易地对你的东西进行排序,因为索引是一个序列

答案 1 :(得分:0)

想一下电话簿。假设您要查找姓氏以“S”开头的人。你可以非常接近地找到所有这些。

使用索引也有助于排序。如果您搜索姓氏以“S”开头的所有人,并且您希望按姓氏排序,那就没问题了,查询可以按照电话簿中列出的顺序读取它们,它们是全部存储在一起。因此,通过顺序读取来完成提取。

但是如果你想让它们按照其他东西排序,比如它们的名字,那么在按照你想要的顺序返回它们之前,必须有一些额外的步骤来对所获取的行进行排序。要排序的数据集可能大于可以放入内存的数据集,因此必须使用临时磁盘空间进行排序。有很多方法可以非常有效地执行此操作,但它可能需要多次传递,或者在从数据库中提取行时构建排序列表。

基本上,以预先排序的顺序存储行可以有效地搜索存储在一起的值,并有效地按索引的顺序检索它们。