查询执行的代价衡量

        数据库在执行SQL操作的时候,经过语法分析、SQL重写、生成物理查询计划等步骤。语法分析也即查询编译,生成SQL树。SQL重写根据代数规则(如结合律、交换律等)变换SQL执行计划。物理查询计划设计到具体的算法,如表扫描选择顺序扫描还是索引扫描;join算法选择nest loop join、merge join还是hash join等。

       在生成物理查询计划的时候,需要由优化器来衡量最佳的执行算法。耗时=IO+内存+CPU,对于数据库查询来说,主要的耗时在于IO,所以焦点就是如何减少IO扫描次数。

      衡量查询代码的模型:

             数据条数(T):也即数据行数,数据表元组的数目

             数据量块个数(B):多行记录以数据块为单元保存磁盘上,如PostgresQL为8kB的数据库块,按一行记录100b计算,大概每个数据块可放655行。

            内存块个数(M):次数假设每个内存块和数据块的大小一致

 一趟算法:

     基于元组的:

...

     基于关系的:

...

二趟算法:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值