归纳
这类型问题可以称为: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优化的效果。文章来源:https://www.toymoban.com/news/detail-797126.html
文章来源地址https://www.toymoban.com/news/detail-797126.html
到了这里,关于【数据库】sql优化有哪些?从query层面和数据库层面分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!