sql优化之逻辑优化

在单机数据库系统中进行优化。面临的问题,比如说给定一个要query的sql语句,查询优化算法的目标就是找到查询的一个具有最小执行花费的执行计划,如果找到了,那么这样的执行计划一定具有最快的响应时间。

查询语句可表示成一颗二叉树,其中叶子代表关系,内部结点是运算符,表示左右子树的连接关系,子树是sql片段或子表达式。根节点是最后运算的操作符。根节点运算之后,得到的是sql查询优化后的结果。这样一棵树就是查询路径。多个关系连接,连接顺序不同,可以得出多个类似的二叉树。
查询优化就是找出代价最小的二叉树,即最优的查询路径。
每条路径的生成,包括单表扫描,两表连接,多表连接顺序,多表连接搜索空间等技术。

思路一:逻辑优化,找出SQL语句等价的变换形式,使得sql执行更高效。优化操作依赖于表的一些属性信息(如索引和约束等)

  • 子句局部优化:等价谓词重写where和having条件化简
    1、等价谓词重写
    列举常见的等价谓词重写(like规则,between-and规则,in转换成or规则,NOT规则,or重写Union规则,这些规则的前提是要查询的字段建立索引;or转换any规则就是or谓词的any等价重写,以更好的利用min/max操作进行优化;all/any转换min/max规则,>any等价于min,<all等价于max;&
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值