This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-18. For the latest, interactive version please visit https://mariadb.com/kb/.

ColumnStore查询处理过程

MariaDB ColumnStore从用户到User模块和Performance模块处理终端用户查询。

  1. 客户端向运行在User模块上的MariaDB服务器发出查询。服务器对所有需要满足请求的表执行表操作,并获取初始查询执行计划。
  2. 使用MariaDB存储引擎接口,ColumnStore将服务器表对象转换为ColumnStore对象。然后将这些对象发送到User模块进程。
  3. User模块将MariaDB执行计划转换并将给定对象优化为ColumnStore执行计划。然后确定运行查询所需的步骤以及它们需要运行的顺序。
  4. 然后,User模块查阅Extent Map以确定需要查询的数据的哪些Performance模块进行咨询,然后执行Extent Elimination,从仅包含查询所需范围之外的数据的Performance模块列表中消除任何Performance模块。
  5. User模块然后向一个或多个Performance模块发送命令以执行块I/O操作。
  6. Performance模块执行谓词过滤、连接处理、从本地或外部存储聚合数据的初始处理,然后将数据发送回User模块。
  7. User模块执行最终结果集聚合并为查询组合结果集。
  8. User模块/ExeMgr实现任何窗口函数计算,以及结果集上任何必要的排序。然后将结果集返回给服务器。
  9. MariaDB服务器对结果集执行任何选择列表函数、ORDER BYLIMIT操作。
  10. MariaDB服务器将结果集返回给客户端。
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.