【数据库】sql优化有哪些?从query层面和数据库层面分析

目录

归纳

这类型问题可以称为:Query Optimization,从清华AI4DB的paper list中,该类问题大致可以分为:

  • Query Rewriter
  • Cardinality Estimation
  • Cost Estimation
  • Plan Optimization

从中文的角度理解那就是:

  • 查询重写
  • 基数估计
  • 成本估计
  • 执行计划优化

sql本身的优化

可以发现,这类型的优化问题,大多数从sql本身,或者说从执行计划本身入手,通过执行计划本身的优化来提升sql的性能。比如,数据库优化器给出某条sql的执行计划,但是由于数据库本身对于基数估计不准确,所以产生了次优的执行计划,这时候查询重写技术通过对执行计划进行优化,修改join order条件,达到更优的执行计划,从而提升sql的执行效率。

数据库层面的优化

但还有一类型的优化,并不从sql的本身出发,或者说不是那么直接的sql层面出发,而是从数据库层面入手,就有很多优化技术:如,参数调优、物化视图等技术。

以spark-sql为例,它有很多参数,而每次执行的结果和对应的参数密切相关,参数调优的目的就是找到一组最佳的参数去调高sql执行效率,它不从sql层面入手,但是却也达到了sql优化的效果。

相关推荐
IvorySQL16 小时前
PostgreSQL 技术日报 (3月9日)|EXPLAIN ANALYZE 计时优化与复制语法讨论
数据库·postgresql·开源
用户83071968408218 小时前
Java 告别繁琐数据统计代码!MySQL 8 窗口函数真香
java·sql·mysql
stark张宇20 小时前
MySQL 核心内幕:从索引原理、字段选型到日志机制与外键约束,一篇打通数据库任督二脉
数据库·mysql·架构
倔强的石头_20 小时前
融合数据库架构实践:关系型、JSON与全文检索的“一库多能”深度解析
数据库
星辰员1 天前
KingbaseES数据库:ksql 命令行用户与权限全攻略,从创建到删除
数据库
华仔啊1 天前
千万别给数据库字段加默认值 null!真的会出问题
java·数据库·后端
随风飘的云3 天前
MySQL的慢查询优化解决思路
数据库
IvorySQL3 天前
PostgreSQL 技术日报 (3月7日)|生态更新与内核性能讨论
数据库·postgresql·开源
赵渝强老师3 天前
【赵渝强老师】金仓数据库的数据文件
数据库·国产数据库·kingbase·金仓数据库
随逸1773 天前
《Milvus向量数据库从入门到实战,手把手搭建语义检索系统》
数据库