数据库查询引擎执行模型
创始人
2024-06-03 17:16:13
0

文章目录

    • 数据库查询引擎执行模型
      • 火山模型(Volcano Model)
      • 物化模型(Materialization Model)
      • 向量化/批处理模型(Vectorized / Batch Model)

数据库查询引擎执行模型

火山模型(Volcano Model)

早期数据库受限于硬件水平,IO、内存和CPU资源都非常昂贵,所以大多数数据库的执行器都采用的是经典的Volcano 模型。

该计算模型将关系代数中每一种操作抽象为一个 Operator,将整个 SQL 构建成一个 Operator 树,从根节点到叶子结点自上而下地递归调用 next() 函数。

例如 SQL:

SELECT Id, Name, Age, (Age - 30) * 50 AS Bonus
FROM People
WHERE Age > 30

对应火山模型如下:

在这里插入图片描述

  • User:客户端。负责获取用户的sql,也负责发送给客户端sql的执行结果。
  • Project:垂直分割(投影),选择字段。对应于sql为:“SELECT Id, Name, Age, (Age - 30) * 50 AS Bonus”,接收子节点数据后,通过处理,得到需要返回给上层的结果值。
  • Select(或 Filter):水平分割(选择),用于过滤行,也称为谓词。对应于sql为:“WHERE Age > 30”,接收子节点数据后,过滤掉不符合条件的数据。
  • Scan:扫描数据。将数据从存储层拉到计算层。比如将People的表数据从磁盘拉到内存。对应sql为:“FROM People”

早期数据库受限于硬件水平,IO、内存和CPU资源都非常昂贵,比如计算层的数据一多,内存容易爆掉,所以火山模型采用每次只计算一行数据的方式,极大缩减了内存使用量。

火山模型的优点:简单易用,每个 Operator 可以单独抽象实现、不需要关心其他 Operator 的逻辑。

火山模型的缺点:查询树调用 next() 接口次数太多,并且一次只取一条数据,CPU 执行效率低;而 Joins, Subqueries, Order By 等操作经常会阻塞。

物化模型(Materialization Model)

物化模型的处理方式是:每个 operator 一次处理所有的输入,处理完之后将所有结果一次性输出

物化模型更适合OLTP负载,这些查询每次只访问小规模的数据,只需要少量的函数调用次数。

物化模型每次处理全部的数据,虽然确实减少了大量函数调用开销,但是不可避免的会引起其他问题:

  • 需要存储全部数据到内存中,很容易引起oom;

  • 执行树的节点会强制转变成串行执行,多核下无法充分利用cpu。

向量化/批处理模型(Vectorized / Batch Model)

批处理模型是火山模型和物化模型的折衷。

向量化模型 和 火山模型 类似,每个 operator 需要实现一个 next() 函数,但是每次调用 next() 函数会返回一批的元组(tuples),而不是一个元组,所以向量化模型也可称为批处理模型。

算子每次执行的时候都会在内部攒一批数据,减少了每个 operator 的调用次数,数据大小尽可能和CPU cache对齐,不仅大大提高了cache命中率,而且有效了减少了函数调用次数。

参考
https://blog.csdn.net/qq_35423190/article/details/123129172

相关内容

热门资讯

初中英语作文:坐飞机【精简4... 初中英语作文:坐飞机 篇一As the plane took off, I felt a mix o...
“美人鱼”故事初一作文【优秀... “美人鱼”故事初一作文 篇一一天,阳光明媚,海面上波光粼粼。美人鱼妮娜在海底的珊瑚礁上欢快地游戏着。...
游王城公园(精选5篇) 游王城公园 篇一王城公园位于中国北京市,是一处历史悠久且风景优美的公园。公园内有丰富的文化遗址和自然...
走进初中初中优秀作文【优质6... 走进初中初中优秀作文 篇一初中生活的美好初中,是每个学生成长的重要阶段。初中的生活对于我们来说充满了...
游东沙古镇初一作文1000字... 篇一:游东沙古镇初一作文1000字东沙古镇位于我国江苏省南京市,是一座历史悠久的古镇。我在初一的时候...
失败的滋味作文(优质6篇) 失败的滋味作文 篇一失败是每个人都会经历的一种情绪和经历。无论是在学业、事业还是人际关系中,我们都有...
我的好朋友初一作文【精彩6篇... 我的好朋友初一作文 篇一初一时,我结识了一个非常好的朋友,他叫李明。李明是一个长得高高的男孩子,留着...
草的勇气初一作文【精简3篇】 草的勇气初一作文 篇一草的勇气草,生长在大地上的普通植物,虽然它不如树木高大,也没有鲜花的美丽,但它...
我的妈妈初中作文800字【精... 我的妈妈初中作文800字 篇一我妈妈是一个温柔而坚强的女人。她照顾我和家庭的同时,也努力工作,为我们...
夜色温柔初中作文【优选5篇】 夜色温柔初中作文 篇一夜色温柔初中作文夜晚,是一天中最安静、最神秘的时刻。当太阳沉入地平线,天空渐渐...
《翡翠森林》观后感900字(... 《翡翠森林》观后感900字 篇一《翡翠森林》是一部以自然为主题的纪录片,通过展示翡翠森林的美丽景色和...
我和妈妈的故事-初中记叙文(... 我和妈妈的故事-初中记叙文 篇一妈妈是我生命中最重要的人,她是我最亲密的伙伴,也是我最坚强的支持者。...
我们是一家人初中作文【优质6... 我们是一家人初中作文 篇一我们是一家人家,是我们生活的港湾,是我们心灵的归宿。而我们,是一个幸福温馨...
初中作文:飘落的樱花【实用5... 初中作文:飘落的樱花 篇一樱花是一种美丽而短暂的花朵,它的开放总是给人们带来无尽的惊喜和美好的回忆。...
解开缚心的绳索作文(优质6篇... 解开缚心的绳索作文 篇一绳索,是一种用来束缚的工具,它可以用来捆绑、困住甚至勒死人。然而,有时候,这...
我是谁作文【最新6篇】 我是谁作文 篇一我是谁?这是一个看似简单却又复杂的问题。每个人都有自己独特的身份和故事,我也不例外。...
我们一家人初中作文(经典6篇... 我们一家人初中作文 篇一我们一家人初中作文我是一个初中生,家中有爸爸、妈妈和一个比我小两岁的弟弟。我...
初中生作文600字【推荐6篇... 初中生作文600字 篇一:我的暑假生活暑假终于到了,这是我最期待的时刻。我有一个丰富多彩的暑假计划,...
尊重的作文【优选6篇】 尊重的作文 篇一尊重是一种基本的社会道德,是我们与他人相处时应当遵循的原则。尊重他人不仅能够维护社会...
十年后的我初中作文【优秀6篇... 十年后的我初中作文 篇一我的初中生活是我成长的重要阶段,十年后回顾起来,我深深地感慨万分。初中时期,...