美文网首页
2019-07-11

2019-07-11

作者: 邪恶的奥伯伦 | 来源:发表于2019-07-17 11:02 被阅读0次

    索引扫描:

    我们先通过index查找到数据对应的rowid值,然后根据rowid直接从表中得到具体的数据,这种查找方式称为索引扫描
    在索引中,除了存储每个索引的值外,索引还存储具有此值的行对应的ROWID值。索引扫描可以由2步组成:(1) 扫描索引得到对应的rowid值。 (2) 通过找到的rowid从表中读出具体的数据。每步都是单独的一次I/O,但是对于索引,由于经常使用,绝大多数都已经CACHE到内存中,所以第1步的I/O经常是逻辑I/O,即数据可以从内存中得到。但是对于第2步来说,如果表比较大,则其数据不可能全在内存中,所以其I/O很有可能是物理I/O,这是一个机械操作,相对逻辑I/O来说,是极其费时间的。所以如果多大表进行索引扫描,取出的数据如果大于总量的5% – 10%,使用索引扫描会效率下降很多。

    全表扫描:

    在数据库中,对无索引的表进行查询一般称为全表扫描。Full Table Scans, FTS

    哪些行为会导致全表扫描:

    1. 模糊查询, 左模糊查询不行, 右模糊查询可以使用索引 2. 条件中有 is null 等其他情况

    相关文章

      网友评论

          本文标题:2019-07-11

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