《数据库索引设计与优化》---第3章 SQL处理过程

1、谓词

    a,where子句   由一个或多个谓词(搜索参数)组成;

    b,谓词:  条件表达式、真值表达式;

2、优化器及访问路径

    a,优化器

      2.1、在  SQL真正被执行之前,优化器  先确定  如何访问数据(使用哪个索引、索引的使用方式、是否需使用辅助式随机读...);

3、索引过滤及过滤列

    3.1、where子句中,从  开头到结尾  检查索引列:

        a,如果   有一个简单 的谓词与索引对应,则 索引列匹配;

        b,如果   没有,则 索引列不匹配;

        c,如果   第一个谓词 是 范围谓词,则 剩余的索引列不匹配

       eg:索引 : A,B,C,D  where子句: where A=  and B>  and  C=;

4、访问路径术语

    4.1、使用  访问路径  描述  数据访问的方式

       使用  执行计划  描述  DBMS提供的Explain工具产生的输出结果

5、监控优化器

    5.1、当发现一个慢SQL时,首先被怀疑的对象是 优化器(优化器选择了错误的访问路径);

    5.2、关系型数据库  通常会  提供一个  用于解释 优化器决定使用某个访问路径的原因  工具(Explain);

6、优化器助手

    6.1、统计信息

        如果 优化器  进行成本估算 使用的统计信息不完整,那么优化器很容易做出错误的决定;

    6.2、Fetch调用次数

        如果 不需要 所有的记录集合,可以设置 仅Fetch n行;

7、优化器何时确定访问路径

8、过滤因子

    8.1、过滤因子  描述  谓词的选择性 (满足表中谓词条件的记录行数  所占 比例);

        平均过滤因子:city=1/不同city个数;

        特定值过滤因子:city="hangzhou"

9、组合谓词过滤因子

    9.1、eg:组合谓词 city=  and  name=;

        如果  组合谓词 列city、列name  没有相关性,组合谓词的过滤因子  city过滤因子*name过滤因子;

 

 

        

posted on 2020-05-11 16:01  anpeiyong  阅读(181)  评论(0编辑  收藏  举报

导航