zoukankan      html  css  js  c++  java
  • MySQL索引下推技术

    索引下推整个思路如下:

    To see how this optimization works, consider first how an index scan proceeds when Index Condition Pushdown is not used:

    1. Get the next row, first by reading the index tuple, and then by using the index tuple to locate and read the full table row.

    2. Test the part of the WHERE condition that applies to this table. Accept or reject the row based on the test result.

    When Index Condition Pushdown is used, the scan proceeds like this instead:

    1. Get the next row's index tuple (but not the full table row).

    2. Test the part of the WHERE condition that applies to this table and can be checked using only index columns. If the condition is not satisfied, proceed to the index tuple for the next row.

    3. If the condition is satisfied, use the index tuple to locate and read the full table row.

    4. Test the remaining part of the WHERE condition that applies to this table. Accept or reject the row based on the test result.

    举例如下:

    Suppose that we have a table containing information about people and their addresses and that the table has an index defined as INDEX (zipcode, lastname, firstname). If we know a person's zipcode value but are not sure about the last name, we can search like this:

    SELECT * FROM people
      WHERE zipcode='95054'
      AND lastname LIKE '%etrunia%'
      AND address LIKE '%Main Street%';

    people表中(zipcode,lastname,firstname)构成一个索引。

    如果没有使用索引下推技术,则MySQL会通过zipcode='95054'从存储引擎中查询对应的元祖,返回到MySQL服务端,然后MySQL服务端基于lastname LIKE '%etrunia%'和address LIKE '%Main Street%'来判断元祖是否符合条件。

    如果使用了索引下推技术,则MYSQL首先会返回符合zipcode='95054'的索引,然后根据lastname LIKE '%etrunia%'和address LIKE '%Main Street%'来判断索引是否符合

    条件。如果符合条件,则根据该索引来定位对应的元祖,如果不符合,则直接reject掉。

  • 相关阅读:
    C++/C函数的调用规范
    Computer Science Conference Rankings 计算机科学会议排名 Rank
    Height of CComboBox's drop down list
    java instrument跟踪java freemarker调用过程
    Text to speech hello world sapi
    Visual Studio 插件 代码注释对齐
    #define WINVER 0x0501 之后菜单不显示图标了
    转 用NodeJS打造你的静态文件服务器
    代码注释对齐
    修复MSN上联系人全部显示脱机状态,删除缓存
  • 原文地址:https://www.cnblogs.com/ivictor/p/5197434.html
Copyright © 2011-2022 走看看