「分散式技術專題」三種常見的資料庫查詢引擎執行模型
Iterator Model
該計算模型將關係代數中每一種操作抽象為一個 Operator,將整個 SQL 構建成一個 Operator 樹,查詢樹自頂向下的呼叫next()介面,資料則自底向上的被拉取處理。
火山模型的這種處理方式也稱為拉取執行模型(Pull Based)。
大多數關係型資料庫都是使用迭代模型的,如 SQLite、MongoDB、Impala、DB2、SQLServer、Greenplum、PostgreSQL、Oracle、MySQL 等。
火山模型的 缺點:查詢樹呼叫next()介面次數太多,並且一次只取一條資料,CPU 執行效率低;而 Joins, Subqueries, Order By 等操作經常會阻塞。
Materialization Model
物化模型更適合OLTP負載,這些查詢每次只訪問小規模的資料,只需要少量的函式呼叫。
向量化模型 和 火山模型 類似,每個 operator 需要實現一個 next() 函式,但是每次呼叫 next() 函式會返回一批的元組(tuples),而不是一個元組,所以向量化模型也可稱為批處理模型。
向量化模型是火山模型和物化模型的折衷。
向量化模型比較適合 OLAP 查詢,因為其大大減少了每個 operator 的呼叫次數,也就簡單減少了虛擬函式的呼叫。
Presto、snowflake、SQLServer、Amazon Redshift等資料庫支援這種處理模式。
Spark 2.x 的 SQL 引擎開始也支援向量化執行模型。
在 Hive 中使用 向量化執行的方式:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026685/viewspace-2934987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「分散式技術專題」資料庫常見的JOIN演算法分散式資料庫演算法
- 「分散式技術專題」兩種向量化執行引擎的實現方法分散式
- Kafka分散式查詢引擎Kafka分散式
- yii2 資料庫常見查詢資料庫
- 「分散式技術專題」資料分佈(原理、資料分片)分散式
- 「分散式技術專題」資料切分與合併分散式
- 真正硬核分散式資料庫:開發分散式SQL資料庫的6種技術挑戰 - YugaByte分散式資料庫SQL
- 聊聊Oracle的分散式資料庫技術Oracle分散式資料庫
- 九種常見的資料分析模型模型
- 分散式資料庫技術論壇分散式資料庫
- Presto:Facebook的分散式SQL查詢引擎REST分散式SQL
- 「分散式技術專題」剖析一個SQL的解析及執行過程分散式SQL
- Oracle 資料庫分散式技術的探討Oracle資料庫分散式
- 測試技術常見的十一種問題
- 崑崙分散式資料庫技術特點分散式資料庫
- 崑崙分散式資料庫技術優勢分散式資料庫
- 常見的三大資料湖技術 - Delta、Hudi、Iceberg大資料
- MySql三種常見引擎及其區別MySql
- javascript常見的幾種自執行函式形式JavaScript函式
- 分散式資料庫技術論壇回顧分散式資料庫
- 華為CloudNative分散式資料庫技術解析Cloud分散式資料庫
- 阿里分散式資料庫未來技術之路阿里分散式資料庫
- 分散式資料庫重要技術概念小記分散式資料庫
- 「分散式技術專題」副本機制分散式
- 「分散式技術專題」故障恢復分散式
- 資料庫常見問題資料庫
- 分散式資料庫系列(三)分散式資料庫
- 50種常見的影像分割技術
- 分散式資料庫查詢中 DRIVING_SITE 的疑問分散式資料庫
- 資料庫選型解讀,分散式資料庫帶來的技術革命資料庫分散式
- 分散式系統技術:儲存之資料庫分散式資料庫
- [分散式][Dubbo]Dubbo常見問題分散式
- MySql、SqlServer、Oracle 三種資料庫查詢分頁方式MySqlServerOracle資料庫
- 「分散式技術專題」資料分佈(資料複製、資料分片及優劣勢)分散式
- 常見的四種執行緒池執行緒
- 「分散式技術專題」時鐘系列二:資料庫世界中為什麼要有時鐘?分散式資料庫
- 資料倉儲中的三種資料庫模型資料庫模型
- 閃回技術查詢資料