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

相关推荐
豆芽脚脚6 小时前
MongoDB 导出和导入完整指南
数据库·mongodb
烧饼Fighting6 小时前
Mysql替换为瀚高数据库部分函数转换V4.5版本
数据库·mysql
上善若水_厚德载物7 小时前
Centos7 Mysql 5.7 读写分离
数据库·mysql
Mr__Miss7 小时前
Redis的持久化
数据库·redis·缓存
CCPC不拿奖不改名7 小时前
SQL基础(SQL小白教程):MySQL语句+环境一键搭建+面试习题
数据库·sql·计算机网络·mysql·oracle·面试·职场和发展
陈文锦丫7 小时前
JAVA面试
数据库·mysql
sunfove7 小时前
将 Python 仿真工具部署并嵌入个人博客
开发语言·数据库·python
冰清-小魔鱼9 小时前
各类数据存储结构总结
开发语言·数据结构·数据库
深藏bIue9 小时前
MongoDB 4.4.30安装、数据迁移
数据库·mongodb
benyuanone9 小时前
MySQL环境项目迁移成国产化达梦环境
数据库·mysql