《数据库索引设计与优化》---第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   anpeiyong  阅读(183)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示