【数据库】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优化的效果。

相关推荐
刺客xs4 分钟前
Qt ---- Qt6.5.3 连接MySQL数据库
数据库·qt·mysql
TiDB 社区干货传送门14 分钟前
“医疗专业应用+分布式数据底座”:平凯数据库与金唐软件全链路赋能医疗国产化与数字化转型
数据库·分布式
德彪稳坐倒骑驴15 分钟前
SQL刷题笔记-我没做出来的题目
数据库·笔记·sql
GottdesKrieges21 分钟前
通过obd升级OceanBase数据库
数据库·oracle·oceanbase
TiDB 社区干货传送门29 分钟前
【附操作指南】从 Oceanbase 增量数据同步到 TiDB
linux·服务器·数据库·tidb·oceanbase
光影少年40 分钟前
postgrsql和mysql区别?
数据库·mysql·postgresql
Hello.Reader1 小时前
Flink SQL Window Top-N窗口榜单的正确打开方式
数据库·sql·flink
wsx_iot1 小时前
MySQL 的 MVCC(多版本并发控制)详解
数据库·mysql
Hello.Reader1 小时前
Flink SQL Deduplication用 ROW_NUMBER 做流式去重
大数据·sql·flink
Shingmc31 小时前
MySQL表的增删改查
数据库·mysql